循环
while循环语句
语法格式
初始化表达式①;
while(布尔表达式②){//布尔表达式=判断条件语句
循环体③;
步进表达式④;//控制条件语句
}
程序执行原理
程序执行顺序为:
①→②→③→④
②→③→④
②→③→④
… …
… …
直到②(布尔表达式)不满足为止
注:
①(初始化表达式)负责完成循环变量初始化。
②(布尔表达式)负责判断是否满足循环条件,满足则进入循环语句,不满足则跳出循环。
③(循环体)具体执行的语句。
④(步进表达式)循环后,循环变量的变化情况。
例题
利用while循环打印出1~4之间的自然数
//打印1~4之间的自然数 public class WhileDemo{ public static void main(String []args){ int count = 1;//定义变量x,初始值为1 while(count<=4){//循环条件 System.out.println(count);//条件成立,打印count的值 count++;//count进行自增 } } }
利用while循环计算1-100之间的和
//while循环计算1-100之间的和 public class WhileDemo{ public static void main(String []args){ int x = 1; int sum = 0; while(x<=100){//循环条件 sum+=x;//sum=sum+x; } System.out.println(sum); } }
for循环语句
语法格式
for(初始化表达式①;布尔表达式②;步进表达式④){
循环体③
}
程序执行原理
程序执行顺序为:
①→②→③→④
②→③→④
②→③→④
… …
… …
直到②(布尔表达式)不满足为止
注:
①(初始化表达式)负责完成循环变量初始化。
②(布尔表达式)负责判断是否满足循环条件,满足则进入循环语句,不满足则跳出循环。
③(循环体)具体执行的语句。
④(步进表达式)循环后,循环变量的变化情况。
例题
利用for循环语句在控制台中输出10句HelloWorld语句
public class ForDemo{ public static void main(String []args){ //控制台输出10次HelloWorld for(int x=1;x<=10;x++){ System.out.println("HelloWorld"); } } }
利用for循环语句计算1-100之间的偶数和
public class ForDemo{ public static void main(String []args){ //计算1-100之间的偶数和 int sum=0; for(int x=1;x<=100;x++){ if(x%2==0){ sum+=x; } } System.out.println(sum); } }
利用for循环语句计算1-5的和
public class ForDemo{ public static void main(String []args){ //计算1-5之间数据之和 int sum=0; for(int x=1;x<=5;x++){ sum+=x; } System.out.println(sum); } }
do…while循环语句
语法格式
初始化表达式①
do{
循环体③;
步进表达式④;
}while(布尔表达式②);
程序执行原理
程序执行顺序为:
①→③→④
②→③→④
②→③→④
… …
… …
直到②(布尔表达式)不满足为止
注:
①(初始化表达式)负责完成循环变量初始化。
②(布尔表达式)负责判断是否满足循环条件,满足则进入循环语句,不满足则跳出循环。
③(循环体)具体执行的语句。
④(步进表达式)循环后,循环变量的变化情况。
do…while循环最显著的特点:无条件执行一次循环体,即使我们将循环条件直接写成false,也依然会循环一次。
例题
利用do…while循环打印5次HelloWorld
public class DoWhileDemo{ public static void main(String []args){ //打印5次HelloWorld int count=1; do{ System.out.println("HellloWorld"); count++; }while(count<=5); } }
for循环和while循环的区别
for 和 while 的小区别:
步进表达式所控制的那个变量,在for循环结束后,就不能再被访问到了,而while循环结束还可以继
续使用,如果你想继续使用,就用while,否则推荐使用for。原因是for循环结束,该变量就从内存中消
失,能够提高内存的使用效率。
在已知循环次数的时候使用推荐使用for,循环次数未知的时推荐使用while。
跳转语句break、continue
break
continue
死循环
死循环:也就是循环中的布尔表达式永远为true,死循环的是永不结束的循环。例如:
while(true){ }
循环嵌套
释义
所谓嵌套循环,是指一个循环的循环体是另一个循环。比如for循环里面还有一个for循环,就是嵌套循环。嵌套循环中,总共的循环次数=外循环次数*内循环次数
语法格式
for(初始化表达式①; 循环条件②; 步进表达式⑦) {
for(初始化表达式③; 循环条件④; 步进表达式⑥) {
执行语句⑤;
}
}
程序执行原理
程序执行顺序为:
①→②→③→④→⑤→⑥
④→⑤→⑥
④→⑤→⑥
… …
… …
④→⑤→⑥
当内层循环的循环条件④不再满足时,执行
⑦→②→③→④→⑤→⑥
④→⑤→⑥
④→⑤→⑥
… …
… …
④→⑤→⑥
当内层循环的循环条件④不再满足时,执行
⑦→②→③→④→⑤→⑥
④→⑤→⑥
④→⑤→⑥
… …
… …
④→⑤→⑥
… …
… …
… …
… …
当外层循环的循环条件②不再满足时,整个嵌套循环执行完毕。
外层循环每执行1次,内层循环就执行多次
比如跳绳:一共跳5组,每组跳10个。5组就是外循环,10个就是内循环。
例题
使用嵌套循环打印一个5*8的矩形
public class NestedLoop{ public static void main(String[]args){ //打印一个5*8的矩形 /* 外层循环5次,内层循环8次。总共循环40次 */ for(int x=1;x<=5;x++){ for(int y=1;y<=8;y++){ System.out.print("*");//打印8个*为一排 } System.out.println();//内层打印了一排 * 就换一行 } } }
运行结果
有关循环的练习题
1、求水仙花数
输出所有的水仙花数,所谓水仙花数是指一个3位数,其每位数字立方和等于其本身,如153=111+333+555=1+27+125/* 输出所有的水仙花数: * 所谓水仙花数是指一个3位数,其每位数字立方和等于其本身 * 如 153=1*1*1+3*3*3+5*5*5=1+27+125=153 * 解题思考: * 1、三位数的范围为 [100,999] * 2、水仙花数的条件:每位数字的立方和等于其本身 * ①:每位数:个位、十位、百位 * number%10 —— number的个位数 * number/10%10 —— number的十位数 * number/100%10 —— number的百位数 * ②:判断点——立方和相加等于其本身 总结思路: 首先来一个循环 定义一个未知数,这个未知数的循环条件为 100<=未知数<=999 循环内部拆解出这个未知数的个、十、百位数 然后再将这三个位数先各自>立方 再相加并将相加后的结果与这个未知数进行比较如果相等则表示这个未知>数是一个水仙花数 * */ public class NarcissisticNumber { public static void main(String[] args) { for (int number = 100; number >= 100 && number <= 999; number++) { int gewei = number % 10; int shiwei = number / 10 % 10; int baiwei = number / 100 % 10; if (gewei * gewei * gewei + shiwei * shiwei * shiwei + baiwei * baiwei * baiwei == number) { System.out.println(number); } } } }