第五章:循环
一.while循环
1.流程图
2.注意
只有当循环中只包含一条语句或者不包含语句时,可以省略花括号。
在循环控制中,不要使用浮点值来比较是否相等,因为浮点值都是近似值。
3.经典案例
int i=1;
while(i<10)
if((i++)%2==0)
System.out.print(i+" ");//3 5 7 9
二.do-while循环
1.流程图
其他两种都为前测循环,do-while为后测循环
三.for循环
1.流程图
2.语法
for(初始操作;循环继续条件;每次迭代后的操作){
循环体;
语句组;
}
break:跳出当前循环
continue:跳出当前迭代
return:跳出当前方法
3.注意
for循环在初始操作中声明变量是一个好习惯
初始动作可以用逗号分开
for(int i=0,j=0;i+j<10;i++,j++){}
每次迭代后的操作可以用逗号分开
for(int i=0;i<10;System.out.println(i),i++)
在无限循环时
for(;true;){}
while(true){}
【补充 20220217】
for(;true;)和while(true)的区别
两个的执行结果和经过编译器优化过的字节码都是一样的,但是并不是所有的编译器都会优化,由于for(;;)不占用寄存器,所以指令也会少
四.输入输出重定向
1.当数据量大时,可以使用输入输出重定向
java 类名 < input.txt//向input.txt中读文件
java 类名 > output.txt//向output.txt中写文件
java 类名 < input.txt > output.txt//从input.txt中读,再写入output.txt文件中
2.具体案例
使用输入重定向
整数在txt文本中用空格隔开
使用输出重定向
五.位操作符
操作符 | 描述 |
& | 位与 |
| | 位或 |
^ | 位与或 |
~ | 求反 |
<< | 左移位 |
>> | 右移位 |
>>> | 不带符号的右移位 |
1.左移位
int y=10<<2;//00001010->00101000 结果为40
二进制向左边移动两位,并添加两个零
2.右移位
int y=10>>2;//00001010 -> 00000010 结果为2
int y=-10>>2;//结果为-3
正数向右移补0
负数向右移补1
3.无符号位右移位
int y=10>>>2;//结果为2
无论正负,都补0
五.总结
通过第五章的学习,我知道了三种循环,while循环,do-while循环和for循环,他们运用于不同的场景,大多数时候也可以相互转化,尽量少的使用continue和break以提高代码可读性。输入输出重定向很好的解决了数据量大的问题,移位运算在进行二进制计算时效率十分高。
加油!第六章待更……