循环:
for 万能|次数循环
for循环的语法格式:
for(条件初始化;条件判断;条件变化){
循环体执行语句;
}
例如:
//求1~10之间的数据的和
//存储和
int sum = 0;
for(int i=1;i<=10;i++){
//sum = sum+i;
sum+=i;
}
System.out.println(sum);
注意:
for循环中的条件i,作用域属于当前for循环
同一个作用域内,变量名不能重复
如果循环体语句只有一句,前后的{}可以省略
while 条件循环
while循环的语法格式:
条件初始化;
while(条件判断){
循环体执行语句;
条件变化;
}
注意:
循环之间都可以相互转化
如果循环体语句只有一句,前后的{}可以省略
例如:
//while
int i=1; //条件初始化;
int sum1=0; //和
while(i<=10){
System.out.println(i);
sum1 += i;
i++; //条件变化
}
System.out.println(sum1);
do...while
do...while 循环的语法格式:
do(条件变化):
while(条件判断){
循环体执行语句;
}
特点: 先执行后判断
无论是否满足条件,都至少执行一次
执行 流程:
1.条件初始化
2.条件判断,如果为true,就执行{}中的语句体,如果不满足,就不执行直接结束循环
3.如果执行语句体之后,继续执行条件变化
重复执行第2,3 步骤
循环嵌套:
for(条件;判断;变化){
//代码
for(条件;判断;变化){
//代码
}
//代码
}
外层循环执行一次,内层循环执行一轮
内外层循环的变量条件不能同名
在内层循环中可以使用外层循环的变量i,在外层循环中不能使用内层循环的变量j
例如:
示例1:
public static void main(String[] args) {
/*
* * * * *
* * * * *
* * * * *
* * * * *
* * * * *
*/
int count = 0;
for(int i=1;i<=25;i++){
System.out.print("* ");
count++;
if(count==5){
System.out.println(); //换行
count=0; //计数器归零
}
}
示例2:
//外层循环变量i->行 内层循环变量j->列
for(int i=1;i<=5;i++){
for(int j=1;j<=5;j++){
System.out.print("* ");
}
//换行
System.out.println();
}
break 与 continue 关键字的区别:
break
作用 : 结束 终止 打破
应用场景 : swtich,循环中
continue
作用 : 结束本次循环,继续进入到下一次循环中
应用场景 : 循环中
例如:
//1~20之间的数字,如果3或者3的倍数就跳过,否则就输出
for(int i=1;i<=20;i++){
if(i%3==0){
continue;
}
System.out.println(i);
}
//输出1~10之间,只有4,6不打印
for(int i=1;i<=10;i++){
if(i==4 || i==6){
continue;
}
System.out.println(i);
}
当存在循环嵌套的时候:
默认: break与continue操作的是那一层循环? -->内层循环
如果想要break与continue关键字操作的是循环嵌套中的某一层循环-->通过带标签的break与continue实现
标签: 自定义标签名(标签名:),循环的上面为当前这一层循环添加标签
例如:
public static void main(String[] args) {
top:for(int i=1;i<=5;i++){
bottom:
for(int j=10;j<=20;j++){
if(j==15){
break top;
}
System.out.print(i+"-->"+j+" ");
}
System.out.println();
}
}
死循环:
重复,无法停止的循环
编译器认为的死循环:
for(;;){}
while(true){}
注意: 死循环后的代码无法执行
例如:
public static void main(String[] args){
//死循环
/*
for(;;){
System.out.println("hahaha");
}
*/
boolean flag = true;
while(true){
break;
}
System.out.println("死循环后的代码");//不可达语句
}
原文:https://www.cnblogs.com/jingzuochangsiji/p/14728381.html