顺序结构的程序语句只能被执行一次。如果您想要同样的操作执行多次,,就需要使用循环结构。
Java中有三种主要的循环结构:
- for 循环
- while 循环
- do…while 循环
for循环
for(初始化表达式语句;判断条件语句;控制条件语句) {
循环体语句;
}
执行流程:
a:执行初始化表达式语句
b:执行判断条件语句,看其返回值是true还是false
如果是true,就继续执行
如果是false,就结束循环
c:执行循环体语句;
d:执行控制条件语句
e:回到B继续。
注意事项 :
初始化表达式语句只执行一次
举例:水仙花数
指一个三位数,其各位数字的立方和等于该数本身。
难点:怎样取得每个位上的数字?
public class shuixianhua {
public static void main(String[] args) {
int count=0;
for(int i=100;i<1000;i++){
int ge=i%10;
int shi=i/10%10;
int bai=i/100;
int flower=bai*bai*bai+shi*shi*shi+ge*ge*ge;
if(i==flower){
System.out.println(i);
count++;
}
}
System.out.println(count);
}
}
while循环
初始化条件语句;
while(判断条件语句) {
循环体语句;
控制条件语句;
}
执行流程:
a:执行初始化条件语句;
b:执行判断条件语句,看其返回值是true还是false
如果是true,就继续执行
如果是false,就结束循环
c:执行循环体语句;
d:执行控制条件语句
e:回到b继续。
注意事项:
一定要在外面初始化变量类型。不能在while判断条件语句中
举例:
public class Test {
public static void main(String args[]) {
int x = 10;
while( x < 20 ) {
System.out.print("value of x : " + x );
x++;
System.out.print("\n");
}
}
}
do-while循环
初始化条件语句;
do {
循环体语句;
控制条件语句;
}while(判断条件语句);
执行流程:
a:执行初始化条件语句;
b:执行循环体语句;
c:执行控制条件语句;
d:执行判断条件语句,看其返回值是true还是false
如果是true,就继续执行
如果是false,就结束循环
e:回到b继续。
注意事项:
do-while语句至少执行一次
总结
三种循环语句的选择
1.当清楚的知道循环的次数时,我们选择for语句,例如计算1-100之间整数和。
2.当不清楚循环次数时选择while语句,例如计算不小于1000的奇数和。
4. do…while循环至少执行一次循环体。而for,while循环必须先判断条件是否成立,然后决定是否执行循环体语句。
5. 如果你想在循环结束后,继续使用控制条件的那个变量,用while循环,否则用for循环。
循环嵌套
外层循环控制行数,内层循环控制列数
举例:输出四行五列的*
for(int i=0;i<4;i++){
for(int j=0;j<5;j++){
System.out.print("*");
}
System.out.println();
}
举例 :9*9乘法表
外层循环循环条件还是i<9,内层循环我们可以知道列数是变化的,只有外层循环变量i变化,输出表达式中符号用+“”+连接,因此我们的代码如下:
for(int i=1;i<=9;i++){
for(int j=1;j<=i;j++){
System.out.println();;
}
System.out.println();
}
其中System.out.println()和System.out.print(),前者打印换行,后者打印不换行,System.out.println()等价于\n换行符。
控制跳转语句
我想在某个循环执行到某一步的时候就结束,现在就做不了这件事情。为了弥补这个缺陷,Java就提供了break,continue和return来实现控制语句的跳转和中断。
控制跳转语句的分类:
1.break 中断
2.continue 继续
3.return 返回
break
用在switch语句和循环语句中,结束当前的循环和case语句。
1.退出单层循环
for(int i=1;i<=10;i++){
System.out.println("我爱你");
if(i==5){
break;
}
}//此时循环执行五次我爱你,因为输出后才做出的判断和break,跳出当前的循环,循环结束。
2.退出多层循环
标签名:语句
wc:for(int i=1;i<=5;i++){
nc:for(int j=1;j<=4;j++){
if (j == 2) {
break wc; //根据标记来终止哪个循环
}
System.out.print("*");
}
System.out.println();
}//最终输出一个*,因为根据标记终止了外层循环,外层循环只执行了一次。
continue
跳出一次循环,继续下一次循环,用在循环场景中
for(int i=1;i<=10;i++){
if(i%2==0){
continue;
}
System.out.println(i);
}
最后输出结果为1,3,5,7,9,我们可以知道continue语句滤除了满足判断条件的数。
总结:
break 退出当前循环
continue 退出本次循环
return
return 就是退出一个方法,跳转到上层调用的方法。我们会根据要求来使用。