Rate this post
在这里我想介绍一下Java里面的三种循环for、while、do while,它们的经典用法和他们之间一点小小的等价关系。这三种循环比较简单,所以我就算是帮大家整理一下知识点。
(一):for循环:经典用法是处理与个数和次数有关的循环。
语法:
for(初始化(1);循环条件(2);递增表达式(4)){
//循环体(3)
}
流程:
(1)–>(2)–>true–>(3)–>(4)–>(2)
|–>false–>(5)结束
在循环语句里面我们会用到两个关键字:continue和break。
(1)continue:直接进入下一次循环
例:
for(int i=0;i<10;i++){
if(i==5)
continue;
System.out.print(i+” “);//0 1 2 3 4 6 7 8 9
}
(2)break:相当于提前打断循环
例:
for(int i=0;i<10;i++){
if(i==5)
break;
System.out.print(i+” “);//0 1 2 3 4
}
其实break还有一种用法:打断一直到”outer”的循环
例:
outer:for(int i=0;i<10;i++){
for(int j=0;j<10;j++){
if(j==5)
break outer;
System.out.print(j+” “);//0 1 2 3 4
}
}
(二):while循环:经典用法是处理与次数无关的循环,次数不定。
语法:
while(循环条件(1)){
//循环体(2)
}
流程:
(1)–>true–>(2)–>(1)
|–>false–>结束
经典题目:数字倒置。如:将数字5211314变成4131125.
int num=5211314,sum=0;
while(num!=0){
int lastNum=0;
lastNum=num%10;
sum=sum*10+lastNum;
num=num/10;
}
System.out.println(sum);//4131125
(三):do while循环:经典用法是处理与次数无关的循环,循环条件在循环体以后判断。
语法:
do{
//循环体(1)
}while(循环条件(2))
流程:
(1)–>(2)–>true–>(1)
|–>false–>结束
其实这些循环并没有明确的界限,所谓的经典用法只不过是用起来更方便一些,并不是说用别的循环就不能实现,有些人只喜欢用一种循环去解决所有的循环问题,这也是行得通的,以为这三种循环有时是可以等价的。
1:有时for循环可以等价于while循环:
for(;循环条件;){ 等价于 while(循环条件){
//循环体 //循环体
} }
死循环:
for(;;){ 等价于 while(true){
//循环体 //循环体
} }
2:while循环有时也可以等价于for循环:
初始化 等价于
while(循环条件){ for(初始化(1);循环条件(2);递增表达式(4)){
//循环体 //循环体
递增 }
}
3:do while循环也可以等价于 while循环
do{ 等价于 while(true){
//循环体 //循环体
}while(循环条件) if(!循环条件){
break;
}
}