JavaSE学习笔记-运算符和流程控制
-
break和continue的区别?
break是直接终止这个语句块,
continue是跳过一次这个循环语句块。
-
do循环和while循环有什么区别?
do循环是无论判断条件是否成立都是会执行一次循环体里面的语句,也就是先执行后判断,而while循环是先判断条件是否成立,如果成立才会执行循环体,不成立则不会执行循环体。
-
“&”和“&&”的区别?
&是如果判断语句里有两个判断中间用的&,则这两个都是要为真的时候才是最终结果为真,而如果遇到前面那个是假的时候,它还是会去比较后面的是真还是假,而&&是如果前面那个为假了,则后面的那个就不会去比较。
-
switch(表达式)中表达式的返回值可以是哪些类型?
- byte,short,char,int,
- 在jdk5之后可以返回枚举
- 在jdk7之后可以返回String
-
如何跳出多重循环体?
用break加循环体标签
比如:
public class Demo{ public static void main(String[] args){ outer:for(int i=1;i<5;i++){ System.out.print("第一层"+i+"\t"); for (int j = 1; j < 5; j++) { System.out.print("第二层"+j+"\t"); if(j==3){ break outer; } } } } }
思考题:
-
short s = 3; s=s+2; ① s+=2; ②
①和②有什么区别?答:①会编译时报错,而②是正常运算的,应为①这样2是int型,他不会自动转换为short型,所以会报错,可能会丢失精度, 而②会自动将int型的2强制类型转换为short型,所以不会报错。
-
boolean b1 = false; //区分==和=的区别。
if(b1=true){ System.out.println("结果为真"); }else{ System.out.println("结果为假"); }
答:输出台会显示结果为真,‘=’是赋值运算符,‘==’是比较运算符,声明是b1是false, 而在判断的时候使用了赋值运算符,把b1的值改成了true,所以会执行条件为真的语句块。
-
以下代码会在控制台输出什么?
int i = 1; i *= 0.1; System.out.println(i); // ? i++; System.out.println(i); // ?
答:输出台会显示 0 1 因为i是int型,执行第一个i *= 0.1;时,0.1 会向下取整自动转换为int型的0,所以i=i*0=0; 而后面执行i++之后就自增1,所以第二个会输出1