JAVA循环
循环结构:在程序中总有一些需要反复执行代码,所以就要用到循环结构,把需要重复执行的代码放到“循环体”中,在联合计数器,共同控制这段需要被反复执行的代码
java循环分为三种
1、for循环
2、while循环
3、do…while循环
for循环
for循环语法结构
for(初始表达式; 布尔表达式; 更新表达式){
java语句;
}
例如:
for(int i = 0; i <= 10;i++){
System.out.println("Hello");
}
其执行原理就是
先执行初始表达式,并且只执行一次
再执行布尔表达式,如果判定结果为True,则继续向下运行输出for循环内的java语句
最后执行更新表达式,即i++,也就是每次循环完i会加1
从0开始运行,0<=10满足布尔表达式,输出一个Hello,此时i会加上1,循环继续
此时i已经为1
那么从1开始运行,1<=10满足布尔表达式,输出一个Hello,此时i继续加1,循环继续
直到循环到i>10,也就是不满足布尔表达式,为false,循环退出
如果想记录循环的次数的总和
需要定义一个单独的值来进行储存
例如
求100以内的奇数的和
int sum = 0;
for(int i =0; i <= 100; i++){
if(i%2 != 0){
System.out.println(i);
sum = sum +i ;
}
}
System.out.println(sum);
最后输出的sum就是0~100内所有奇数的和
for( ; ;)代表的是无限循环,其原因是没有限制条件
i++ 的意思是每次循环成功 i+1
i-- 的意思是每次循环成功 i-1
for循环嵌套
int sum = 0;(记录所有sum的和,因为不在循环体中)
for(int i = 1; i < 100; i++){
sum += i;(就是sum=sum+i )
System.out.println_( );
}
以上for循环结束后,最终输出求和的结果
system.out.println(“sum” + sum);
循环体中可以编写其他控制语句
控制语句可以嵌套使用
控制语句可以是:if ,else if, else,swich,for,while,do…while
内层循环中的变量名和外层循环中的变量名不能重复,会冲突
for(int i = 0; i < 10; i++){
for(int j = 0 ; j < 3; j++){
这里也是循环体内的代码,无论写了什么,都要执行10次
}
}
先把里边的for循环3遍,再把循环3遍的结果用外边的for循环10次
while循环
while(布尔表达式){
循环体
}
其执行原理是
先判定布尔表达式是否为true,如果为true,则执行循环体,循环结束后,再判断布尔表达式是否为true,如果为true,则执行循环体,循环结束后,再判断布尔表达式是否为true,知道布尔表达式的结果判定为false,while循环结束。
如果第一次判定的时候布尔表达式的结果就是false,那么while会执行0次。
while(true){
System.out.println("Hello");
}
这是while循环的死循环,由于while中的布尔表达式一直判定为true,就会一直执行下去
用while输出一到十的数
int i = 0 ;
while(i < 10){
i++;
System.out.println("i = "+ i);
}
实际上 while 循环可以看做是 for 循环的另一种变形写法,本质上是一样的,执行效率上也是一样的
do…while
do…while循环是while循环的变形
do…while与while的区别
do…while循环最少会执行一次 1~n次
while循环可能会执行0次 0~n次
do{
System.out.println("Hello");
}while(布尔表达式);
执行顺序为
先执行do内的循环体,再判断布尔表达式的结果,如果结果为true,那么再执行do内的循环体,再判断布尔表达式的结果,直到循环体执行完之后布尔表达式判定为false,循环结束
**注意do…while 循环最后的“ ;”不要丢。