运算时必须有()不然就是a与b连在一起而不是加起来了
?表示是还是不是
取模运算时 结果的符号与被模数相同 即 12 % -5 = 2 -12/-5=2
byte a = 1;
a = a + 1 不行但是 a++;可以 后者还是byte
i *= 0.1 i=0 因为类型不改变
System.out.println(a=b);意思为将b付给a 输出a
。。。。。。。。。(a==b)输出为false或者true
★^为不同为1,相同为0想异或的异
&时比较前后 &&如果前面出错了后面就不看了
计算机使用补码表示负数,所以必须算出原码才能知道这个负数
所以对一个正数取反之后因为符号位为1所以要按照上面来计算
a b 交换: (基本不用)
c=a^b;
a=(a^b)^a,b=c^a;
&&(y=true)这里是赋值给y并且是最后整个是true
结果为false
String a = integer.toBinaryString(60);(将整数60转换为二进制字符串)
取一个数字的二进制后四位 &15
能用条件就别用if else
1.需要设置一个scanner 必须是新的且接受输入的信息
2.用一个变量num来接受scan1的nextInt();
scan1.next()这是字符串想象这个字符串是中文所以可以省略不屑;
获取字符时也是用 scan1.next()
.前面是对象后面的方法第二个首字母要大写例如scan.nextInt();string.charAt(数字);
要有大括号不然只有第一句是大括号之内,会出错
变红了的是类 带有()的是方法例如Math.random()
[0.0,1.0)配范围时先乘一个数再加一个数
对输入的str进行.equals("")的方法进行比较与c语言的strcmp(s1,s2)相似
switch-case别忘了break;不能用boolbean default可以写可以不屑和else一样
算这是一年中的第几天时可以
case 12:
这里加的是11的全部日子 并且不加break;最后加的形式来减少步骤
case 11:
case 3:
判断是否闰年决定加多少
case 1:
加的是day
java里的for (可以 int i=1;)!
创建Scanner只需要一次就行了
for (;;)和while(true)时下面一般有break例输入0时循环终止
a=10,b=20 求输出 10 * 20 = 200
应该为System.out.println(a + " * " + b+" = "+(a*b));
算质数的时候j<Math.sqrt(i)即可
break continue只能跳出最近的循环但是有label就不一样了
可以跳出label所在循环 return是结束整个过程
case 中的break只能跳出switch不能整个过程,用return跳出
scan.next();前为String不是char
import java.util.Scanner;//未考虑界面是循环的 class MoneyDetails { public static void main(String[] args) { int shouruj=0,zhichuj=0; String shourus="无",zhichus="无"; int money=10000; while (true)//★ {
Scanner scan = new Scanner(System.in);
System.out.println("----------------家庭收支记账软件----------------");
System.out.println(" 1收支明细");
System.out.println(" 2登记收入");
System.out.println(" 3登记支出");
System.out.println(" 4退 出\n");
System.out.print(" 请选择(1-4): _");//不加ln
//char key = Utility.readMenuSelection();//★应该与System有点像
int key = scan.nextInt();
System.out.println();
switch (key)
{
case 2:
//case '2'://''重要
System.out.print("本次收入金额:");
shouruj = scan.nextInt();
System.out.print("本次收入说明:");
shourus = scan.next();
money=money+shouruj;
break;
case 3:
System.out.print("本次支出金额:");
zhichuj = scan.nextInt();
System.out.print("本次支出说明:");
zhichus = scan.next();
money=money-zhichuj;
break;
case 1:
System.out.println("----------------当前收支明细记录----------------");
System.out.println("收支 账户金额 收支金额 说 明");
System.out.println("收入 "+money+" "+shouruj+" "+shourus);
System.out.println("支出 "+money+" "+zhichuj+" "+zhichus);
break;
case 4:
System.out.print("确认是否退出(Y/N):_");
String tui = scan.next();
if (tui.equals("y"))//注意这里是""因为是string
{
return;
}else{
continue;
}
default:
System.out.println("请重新输入");
break;
} }
}
}
这是自己写的家庭经济收入支出情况
改进后的: import java.util.Scanner;//未考虑界面是循环的 class MoneyDetails { public static void main(String[] args) { String details1 = "";//先要设置才有下面的details+= 这里只说了收入没有支出的+= int shouruj=0,zhichuj=0; String shourus="无",zhichus="无"; int money=10000;
while (true)//★
{
Scanner scan = new Scanner(System.in);
System.out.println("----------------家庭收支记账软件----------------");
System.out.println(" 1收支明细");
System.out.println(" 2登记收入");
System.out.println(" 3登记支出");
System.out.println(" 4退 出\n");
System.out.print(" 请选择(1-4): _");//不加ln
//char key = Utility.readMenuSelection();//★应该与System有点像
int key = scan.nextInt();
System.out.println();
switch (key)
{
case 2:
//case '2'://''重要
System.out.print("本次收入金额:");
shouruj = scan.nextInt();
System.out.print("本次收入说明:");
shourus = scan.next();
money=money+shouruj;
details1 += "收入 "+money+" "+shouruj+" "+shourus+"\n";//★正因为+=所以才有收入一条条出现
break;
case 3:
System.out.print("本次支出金额:");
zhichuj = scan.nextInt();
System.out.print("本次支出说明:");
zhichus = scan.next();
money=money-zhichuj;
break;
case 1:
System.out.println("----------------当前收支明细记录----------------");
System.out.println("收支 账户金额 收支金额 说 明");
System.out.println(details1);
System.out.println("支出 "+money+" "+zhichuj+" "+zhichus);
break;
case 4:
System.out.print("确认是否退出(Y/N):_");
String tui = scan.next();
if (tui.equals("y"))//注意这里是""因为是string
{
return;
}else{
continue;
}
default:
System.out.println("请重新输入");
break;
} }
}
}