Java 基础 --循环语句

柔光的暖阳◎ 2021-11-14 13:20 537阅读 0赞

一 : while循环

1.1 格式:

  1. while (boolean表达式) {语句块}

1.2 执行过程

  1. 先判断表达式的值。若为true.则执行循环体,然后再次判断条件并反复执行,直到条件不成立为止。
  2. 特点:先判断再执行。

案例一:需求: 打印输出5次helloworld

  1. // 初始化部分
  2. int count = 0;
  3. // 2循环条件
  4. while(count<5){// 1 2 3
  5. //3循环体
  6. System.out.println("hello world");
  7. //4更新循环变量
  8. count++;
  9. }

案例二:需求 : 打印输出 1–10

  1. int i =1;
  2. while(i<=10){
  3. System.out.println(i);
  4. i++;
  5. }

案例三:求1-100的和

  1. //1初始化变量
  2. int i=1;
  3. int sum=0;//保存和
  4. //2循环条件
  5. while(i<=100){
  6. sum=sum+i;//sum+=i;
  7. i++;
  8. }
  9. System.out.println("1-100的和是:"+sum);

案例四: 求 10 的阶乘

  1. int sum = 1;
  2. int j = 1;
  3. while(j<=10){
  4. sum=sum*j;
  5. j++;
  6. }
  7. System.out.println("10的阶乘"+sum);

2.3.5 练习五:求 100以内的 偶数的和

  1. int z=2;
  2. int sum=0;
  3. while(z<=100){
  4. sum=sum+z;
  5. z+=2;
  6. }
  7. System.out.println("1-100的偶数的和是:"+sum);
  8. int z=1;
  9. int sum=0;
  10. while(z<=100){
  11. if(z%2==0){
  12. sum=sum+z;
  13. }
  14. z++;
  15. }
  16. System.out.println("1-100的偶数的和是:"+sum);

二: do-while循环

2.1格式

  1. do {语句块}while(表达式) ;

2.2 执行过程

  1. 先执行语句,再判表达式的值,若为true,再执行语句,否则结束循环。
  2. while 先判断 再执行
  3. 特点:先执行,再判断。

案例: 打印三次helloworld

  1. // 1 初始化部分
  2. int i = 0;
  3. do{
  4. // 2 循环体
  5. System.out.println("Hello World!");
  6. // 4 循环变量变化部分
  7. i++;
  8. }while(i<3);// 3 循环条件

案例二: 用do/while实现打印100以内的奇数

  1. int j = 1;
  2. do{
  3. /*if(j%2==1){
  4. System.out.println(j);
  5. }
  6. j++;*/
  7. System.out.println(j);
  8. j+=2;
  9. }while(j<100);

案例三 100 以内能够被3整除 但是不能被5整除的数打印输出

  1. int z = 3;
  2. do{
  3. if(z%3==0 && z%5!=0){
  4. System.out.println(z);
  5. }
  6. z++;
  7. }while(z<=100);

三 : for循环

3.1 格式

  1. for (表达式1 [循环变量初始值设定]; 表达式2 [循环条件判断]; 表达式3 [更新循环变量的值]){
  2. 循环体

3.2 执行过程

  1. 首先计算表达式1,接着计算表达式2,若表达式2的值为true,则执行循环体,接着计算表达式3,再判断表达式2的值.依此重复下去,直到表达式2的值=false
  2. 特点:先判断,再执行。

案例: 需求: 打印输出3次helloworld

  1. for(int i = 0;i<3;i++){
  2. System.out.println("Hello World!");
  3. }

案例: 打印100以内 能被4整除不到能被7整除的数据,每行打印6个

  1. int count = 0;
  2. for(int i = 1; i<=100; i++){
  3. if(i%4==0 && i%7!=0){
  4. System.out.print(i+"\t");
  5. count++;// 6
  6. if(count%6==0){
  7. System.out.print("\n");
  8. }
  9. }
  10. }

3.4 for循环的特殊形式

  1. 1. 表达式2一般不可省略,否则为无限循环(死循环)
  2. for (i=1; ; i++) sum=sum+i
  3. // 相当于条件永真、永不为false
  4. 2. 表达式3亦可省略,但在循环体中须有语句修改循环变量;以使表达式2在某一时刻为false而正常结束循环。
  5. for (int sum=0,i=1 ;i<=100; ){
  6. sum=sum+i;
  7. i++;
  8. }
  9. 3. 若同时省略表达式1和表达式3,则相当于while(表达式2)语句
  10. int i=0;
  11. for ( ; i<=100; ) {sum+=i; i++;}
  12. 4. 三个表达式均省略 for(;;)语句,此时相当于while(true)语句.

3.5 三种循环的比较和注意事项

  1. 三种循环的比较:
  2. 1 语法不一样
  3. while(条件){...}
  4. do{...}while(条件);
  5. for(表达式1;表达式2;表达式3){...}
  6. 2 执行顺序
  7. while for 都是先判断条件 ,然后再执行循环体
  8. do while 先执行循环体,再判断条件
  9. 注意事项
  10. 1. 对于同一问题, 三种循环可相互替代。
  11. 2. 循环次数确定的情况优先选用for循环,循环次数不确定的情况,通常选用whiledo-while循环。
  12. 3. 要防止无限循环––死循环。

四 :多重循环:二重循环

多重循环就是循环中嵌套其他循环。

特点:外层循环执行一次,内层循环执行一遍。

案例一:
使用*号打印矩形。

  1. // 外层循环控制行 内层循环 控制列
  2. // *******
  3. // *******
  4. // *******
  5. // *******
  6. for (int j = 0;j<4 ; j++){
  7. for(int i = 0; i< 7 ; i++){
  8. System.out.print("*");
  9. }
  10. System.out.println();
  11. }

案例二:

打印直角三角形

  1. /*
  2. 找规律
  3. * 1 1
  4. ** 2 2
  5. ***
  6. ****
  7. ***** 5 5
  8. */
  9. for (int i = 1;i<=5 ;i++ ){
  10. // 1 2 3 4 5
  11. for (int j = 1;j<=i ;j++ ){
  12. System.out.print("*");
  13. }
  14. System.out.println();
  15. }

案例三:

输出等腰三角形

  1. * 1 1 1*2-1
  2. *** 2 3 2*2-1
  3. ***** 3 5 3*2-1
  4. ******* 4 7 4*2-1
  5. ********* 5 9 5*2-1
  6. * 1 4 5-1=4
  7. *** 2 3 5-2=3
  8. ***** 3 2 5-3=2
  9. ******* 4 1 5-4=1
  10. ********* 5 0 5-5=0
  11. for (int i = 1;i<=5 ;i++ ){
  12. //空格
  13. for(int k=1;k<=5-i;k++){
  14. System.out.print(" ");
  15. }
  16. // 1 2 3 4 5
  17. for (int j = 1;j<=i*2-1 ;j++ ){
  18. System.out.print("*");
  19. }
  20. System.out.println();
  21. }

案例四:

输出九九乘法表

  1. *
  2. **
  3. ***
  4. ****
  5. *****
  6. 1*1=1
  7. 1*2=2 2*2=4
  8. 1*3=3 2*3=6 3*3=9
  9. // 99乘法表
  10. for (int i = 1;i<=9 ;i++ ){
  11. for (int j = 1;j<=i ;j++ ){
  12. System.out.print(i+"*"+ j+"="+i*j+"\t");
  13. }
  14. System.out.println();
  15. }

拓展:
一:while 和 do/while 的区别:

while 先执行循环条件,然后在执行循环体,一句话:先判断,再执行

do/while 先执行循环体 然后在执行循环条件,一句话:先执行,再判断

当第一次 就不满足循环条件的情况下 while循环不能执行循环体, do while 可以执行一次

二: 跳转语句–流程控制语句

break:语句用于终止某个语句块的执行

continue:语句用于跳过某个循环语句块的一次执行,继续下一次执行(结束本次循环,继续下一次循环)

2.1 break

  • 使用场合

    • switch结构中:跳出(终止)switch语句
    • 循环结构中:跳出(终止)循环
  • 作用:退出switch和循环结构(如果有多重循环,默认跳出离自己最近的循环)。
    for (int i = 1; i < 3; i++ ){
    for (int j = 1;j<5 ;j++ ){
    if(j == 2){
    break;// 可以指定 跳出的循环
    }
    System.out.println(i+” “+j);
    }

    1. }

使用Lable标签实现跳出指定的循环。(了解)

  1. out : for (int i = 1; i <3 ; i++ ){//定义一个标签out
  2. for (int j = 1;j<3 ;j++ ){
  3. if(j == 2){
  4. break out;// 可以指定 跳出的循环
  5. }
  6. System.out.println(i+" "+j);
  7. }
  8. }

2.2 continue

  • 使用场合

    • continue只能用在循环结构中
  • 作用: 跳过本次循环,执行下一次循环(如果有多重循环,默认继续执行离自己最近的循环)。)

    1. for (int i = 1;i<4 ;i++){
    2. ii!");

使用Label标签改变继续执行的循环

  1. out: for (int i = 1;i<4 ;i++ ){
  2. for (int j = 1;j<4 ;j++ ){
  3. if(j==2){
  4. continue out ;
  5. }
  6. System.out.println("i="+i + " j="+j);
  7. }
  8. }
  9. System.out.println("Hello World!");

发表评论

表情:
评论列表 (有 0 条评论,537人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Java 循环语句

    Java 循环语句 循环语句就是在满足一定条件的情况下反复执行某一个操作的语句。Java中提供了3种常用的循环语句,分别是while循环语句、do…while循环语句和f