代码异常分析
按位与&:全1为1,有0则0;
按位或 |:全0为0,有1则1;
按位异或 ^:相同位上为0,不同位上进行或;
按位取反 ~:1变0;0变1;
“>>>”:无符号右移。
三目运算符:表达式1?表达式2:表达式3;
例子:
public static void main2(String[] args) {
//例子1
int a = 3;
int b = 4;
int c = 5;
int max=a > b ? (a > c? a : b): ( b > c ? b : c);
//例子2
boolean flg = true ? true == true ? false : true : false;
System.out.println(max);
System.out.println(flg);
}
final a=10,常量在编译时期就已经确定。
continue 结束本趟循环,进行下一次循环,且本趟后面的代码不执行。
break 程序遇到break直接跳出循环;
&& 布尔表达式1&&布尔表达式2;
|| 布尔表达式1&&布尔表达式2;
悬空的else会和最近的if进行匹配;
System.in:指从键盘读入;
do while特点:无论怎样,都会被执行一次;
Scanner.nextline():读入的是整行;
Scanner.next():遇到空格结束;
char i = (char) System.in.read():读入一个字符;
如果要同时输入字符串和数字,应当先输入字符串,再输入数字。
while (scanner.hasNextInt()):循环输入,IDEA 结束这个循环 需要用ctr+D;
面试问题:不能做switch的参数的数据类型 有哪些?
答:long float double boolean
JDK1.5引入了枚举 switch的参数也可以是枚举;
求1!+2!+3!+…+n!?
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int ret = 0;
while (n>0){
int sum = 1;
for (int i = 1; i <= n ; i++) {
sum *= i;
}
ret += sum;
n--;
}
System.out.println(ret);
}