当前位置:网站首页 > Java基础 > 正文

java语言基础4



java语言基础(4)

主要内容:《循环结构while、do...while、for、嵌套循环、跳转》

1 循环结构while语句的格式和基本使用

第一种循环结构:

         while循环:

         格式:

         while(逻辑表达式){

                   //循环体代码。需要重复执行的代码

         }

         说明:

         1.逻辑表达式:必须返回一个boolean类型的结果;

         2.如果返回true:执行循环体;

         3.循环体执行完毕,回到上面的"逻辑表达式",继续判断;

         4.如果判断为true,仍然进入循环体,再执行一次;执行完,再回到"逻辑表达式"

         5.如果"逻辑表达式"返回false,循环结束;

 1  2 class Demo  3 {  4 public static void main(String[] args)  5  {  6 //无限循环(死循环)  7 /*  8  while(true){  9  System.out.println("HelloWorld!"); 10  } 11 */ 12 /* 13  boolean flag = true; 14  while(flag){ 15  System.out.println("HelloWorld"); 16  } 17  System.out.println("程序结束!"); 18 */ 19 //1.打印10次HelloWorld 20 /* 21  boolean flag = true;//控制循环的 22  int count = 0;//计数器 23  while(flag){ 24  System.out.println("HelloWorld 计数器:" + count); 25  count++;//将计数器加1 26  //判断是否到10 27  if(count == 10){ 28  flag = false;//喊停 29  } 30  } 31 
1 //2.优化一下 2 3 int count = 0;//计数器 4 while(count < 10){ 5 System.out.println("HelloWorld 计数器:" + count); 6 count++;//将计数器加1 7  } 8 
//3.打印1--100之间所有的整数 int num = 1; while(num <= 100){//考虑,什么时候进入循环  System.out.println(num); num++;//将数字加1,变为下一个数字  } 
 1 //4.计算并打印1--100的累加和  2  3 int sum = 0;//存累加和的  4 int num = 1;  5 while(num <= 100){  6 sum = sum + num;//num就代表每个数字。将每个数字都加到和中。  7 num++;  8  }  9 System.out.println("sum = " + sum); 10 
//5.打印1--100的所有偶数; int num = 1; while(num <= 100){ if(num % 2 == 0){ System.out.println(num); } num++; }

 1 //6.计算1-100所有的奇数和  2  3 int num = 1;  4  5 int sum = 0;  6  7 while(num <= 100){  8  9 if(num % 2 != 0){//判断是奇数 10 11 sum = sum + num;//加到和中 12 13  } 14 15 num++; 16 17  } 18 19 System.out.println("sum = " + sum); 20 21 System.out.println("程序结束!"); 22 23  } 24 25 }

2 循环结构do...while语句的格式和基本使用

/*

         do_while循环:

         java语言基础4 格式:

         do{

                   ...https://www.cnblogs.com/linmusen//循环语句

         }while(逻辑表达式);

         do...while和while的区别:

         1.do...while:先无条件执行一次循环体,然后再判断;

         2.while:先判断,再决定是否进入循环体;

 1 class Demo  2 {  3 public static void main(String[] args)  4  {  5 //无限循环(死循环)  6 /*  7  do{  8  System.out.println("HelloWorld");  9  }while(true); 10 */ 11 //打印10次HelloWorld 12 /* 13  int count = 0; 14  do{ 15  System.out.println("HelloWorld"); 16  count ++; 17  }while(count < 10); 18 */ 19 //打印1--100的整数 20 /* 21  int num = 1; 22  do{ 23  System.out.println(num); 24  num++; 25  }while(num <= 100);//什么时候进入循环 26 */ 27 //计算1--100的累加和 28 /* 29  int num = 1; 30  int sum = 0; 31  do{ 32  sum += num; 33  num++; 34  }while(num <= 100); 35  System.out.println("sum = " + sum); 36 */ 37 38 //计算某数到100的累加和 39 40 //do...while版 41 /* 42  int num = 10000; 43  int sum = 0; 44  do{ 45  sum += num; 46  num++; 47  }while(num <= 100); 48  System.out.println("sum = " + sum); 49 */ 50 //while版 51 /* 52  int num = ; 53  int sum = 0; 54  while(num <= 100){ 55  sum += num; 56  num++; 57  } 58  System.out.println("sum = " + sum); 59 */ 60 61  } 62 }

3 循环结构概述和for语句的格式及其使用

         for循环:

         1.语法格式:

                   for(初始化循环变量; 逻辑表达式 ; 增量表达式 ){

                            //循环体

                   }

         说明:

         1).初始化循环变量:一般用于定义循环变量,并初始化;

         2).逻辑表达式:产生一个true或false,以此来决定是否进入循环;

         3).增量表达式:一般用来控制循环变量,来促使"逻辑表达式"产生一个false,用来结束循环;

        

         以上三个表达式,都不是必须的;但是,分号一定要写;

 1 class Demo  2  3 {  4  5 public static void main(String[] args)  6  7  {  8  9 //无限循环(死循环)  10  11 /*  12  13  for(;;){  14  15  System.out.println("HelloWorld");  16  17  }  18  19 */  20  21 //1.打印10次HelloWorld  22  23 /*  24  25  int count = 0;//计数器  26  27  boolean flag = true;//控制循环  28  29  for(;flag;){  30  31  System.out.println("HelloWorld");  32  33  count++;//计数器加1  34  35  if(count == 10){  36  37  flag = false;  38  39  }  40  41  }  42  43 */  44  45 //变形1:  46  47 /*  48  49  int count = 0;//计数器  50  51  for(;count < 10;){  52  53  System.out.println("HelloWorld");  54  55  count++;//计数器加1  56  57  }  58  59  变形2:  60  61  for(int count = 0;count < 10;count++){  62  63  System.out.println("HelloWorld");  64  65  }  66  67 */  68  69 2.打印1--100的数  70  71 for(int num = 1;num <= 100;num++){  72  73  System.out.println(num);  74  75  }  76  77 3.计算1--100所有数的累加和  78  79 int sum = 0;  80  81 for(int num = 1;num <= 100; num++){  82  83 sum += num;  84  85  }  86  87 System.out.println("sum = " + sum);  88  89 // System.out.println("num = " + num);//编译错误:num的作用域只在for内部  90  91 //注意num的作用域  92  93 int num = 1;  94  95 for(;num <= 100;num++){  96  97  System.out.println(num);  98  99  } 100 101 System.out.println(num);//OK的 102 103 int num; 104 105 for(num = 1 ; num <= 100; num++){ 106 107  System.out.println(num); 108 109  } 110 111  System.out.println(num); 112 113 */ 114 115 /* 116 117  for(int num = 1,sum = 0 ; num <= 100;num++){//在for中定义两个变量是可以的,但作用域都是在for内部 118 119  } 120 121  System.out.println(sum);//编译错误,不能访问sum 122 123 */ 124 125 126 127 //4.计算1--100的所有的偶数和: 128 129 /* 130 131  int sum = 0; 132 133  for(int num = 1; num<=100 ; num++){ 134 135  if(num % 2 == 0){ 136 137  sum += num; 138 139  } 140 141  } 142 143 */ 144 145 /* 146 147  int sum = 0; 148 149  for(int num = 2 ; num <= 100 ; num+=2){ 150 151  sum += num; 152 153  } 154 155 */ 156 157 // System.out.println("偶数和:" + sum); 158 159  } 160 161 }

4 循环结构for语句的练习

 1 /*  2  在控制台输出10--1  3 */  4 class Demo1 {  5 public static void main(String[] args) {  6 for(int num = 10; num > 0 ; num--){  7  System.out.println(num);  8  }  9  } 10 }
 1 /*  2  求5的阶乘:  3  1 * 2 * 3 * 4 * 5  4 */  5 class Demo2 {  6 public static void main(String[] args) {  7 int result = 1;  8 for(int num = 1 ; num <= 5 ; num++){  9 // result = result * num; 10 result *= num; 11  } 12 System.out.println("5的阶乘为:" + result); 13  } 14 }
 1 /*在控制台输出所有的”水仙花数”  2  1.打印出所有的三位数的水仙花数;  3  2.水仙花数:这个数的个位的立方 + 十位的立方 + 百位的立方 = 这个数  4  3.例如:  5  数字:153  6  1 * 1 * 1 + 5 * 5 * 5 + 3 * 3 * 3 = 153  7  思路:  8  1.三位数的水仙花数:所有的三位数:100 -- 999。可以使用for循环  9  2.在循环内部,可以取出每个数字:例如:取出数字:100 10  3.拿到数字后,将每位的数字取出; 11  数字:153 12  个位:153 % 10 : 3 13  十位:153 / 10 % 10 : 5 14  百位:153 / 100 % 10 : 1 15  千位:数字 / 1000 % 10 16  万位:数字 / 10000 % 10 17  4.将每位数字计算立方并相加,相加后进行判断,如果等于这个数:就是水仙花数*/ 18 class Demo3 { 19 public static void main(String[] args) { 20 for(int num = 100 ; num <= 999 ; num++){ 21 int ge = num % 10; 22 int shi = num / 10 % 10; 23 int bai = num / 100 % 10; 24 //判断 25 if((ge * ge * ge + shi * shi * shi + bai * bai * bai) == num){ 26 System.out.println("水仙花数:" + num); 27  } 28  } 29  } 30 }
/*统计水仙花的数量: 1.找水仙花; 2.找到后,计数器加1; 3.循环结束后,打印计数器;*/ class Demo4 { public static void main(String[] args) { int count = 0; for(int num = 100; num <= 999 ; num++){ int ge = num % 10; int shi = num / 10 % 10; int bai = num / 100 % 10; if((ge * ge * ge + shi * shi * shi + bai * bai * bai) == num){ count++; } } System.out.println("水仙花数的数量是:" + count); } }
 1 /*请在控制台输出满足如下条件的五位数  2  个位等于万位;十位等于千位  3  个位+十位+千位+万位=百位  4  思路:  5  1.五位数:10000 -- 99999:使用for  6  2.取出每一位;  7  3.判断:输出:*/  8 class Demo5 {  9 public static void main(String[] args) { 10 for(int num = 10000; num <= 99999; num++){ 11 int ge = num % 10; 12 int shi = num / 10 % 10; 13 int bai = num / 100 % 10; 14 int qian = num / 1000 % 10; 15 int wan = num / 10000 % 10; 16 //判断 17 if(ge == wan && shi == qian && (ge + shi + qian + wan) == bai){ 18 System.out.println("找到五位数:" + num); 19  } 20  } 21  } 22 }
 1 /*请统计1-1000之间同时满足如下条件的数据有多少个: 对3整除余2;对5整除余3;对7整除余2*/  2 class Demo6 {  3 public static void main(String[] args) {  4 for(int num = 1 ; num <= 1000 ; num++){  5 if(num % 3 == 2 && num % 5 == 3 && num % 7 == 2){  6 System.out.println("找到数字:" + num);  7  }  8  }  9  } 10 } 

5 循环结构三种循环语句的区别

1.do...while:先进入循环一次 ,再判断;

         2.for和while都是先判断,再决定是否进入循环体;

         3.for循环:一般在明确循环的范围,有明确的增量。常用

         while循环:不具有明确的循环范围,也不具有明确的增量。

         do...while循环:先进入循环,后判断。

         注意事项:

         1.编写循环结构时,一定要检查好循环结束的条件。否则就是死循环;

6 嵌套循环结构

嵌套循环:

         1.每一种循环的内部都可以再嵌套其他的循环;

         2.这种循环可以无限嵌套;

         3.执行特点:外部循环每执行一次,内部循环都要全部的循环一次;

         4.建议:只能出现两层嵌套,如果需要第三层嵌套,就要考虑优化代码和算法;

                 尽量不要出现第三层嵌套,会给调试和后期维护带来困难;

7 循环结构循环嵌套练习

 1 /*需求:请输出一个4行5列的星星(*)图案。  2  输出:  3  *  4  *  5  *  6  *  7 */  8 class Demo1{  9 public static void main(String[] args) { 10 for(int num = 1 ; num <= 4 ; num++){//外层循环:控制"行"数据 11 for(int j = 1 ; j <= 5 ;j++){//内层循环:控制"每列"的数据 12 System.out.print("*");//横向的输出5个* 13  } 14 System.out.println();//输出一个换行符 15  } 16 } 17 18 }
/*需求:请输出如下图形 * * * */ class Demo2 { public static void main(String[] args) { for(int i = 1 ;i <= 5 ;i++){ for(int j = 1; j <= i ; j++){//j<=i:列数小于或等于行数的时候都可以输出,一旦大于行数,就结束输出; System.out.print("*"); } System.out.println();//输出一个换行  } } }
/*需求:在控制台输出九九乘法表。 1*1=1 1*2=2 2*2=4 1*3=3 2*3=6 3*3=9 ..... 1*9=9 2*9=18 3*9=27...7*9=63 8*9=72 9*9=81 思路: 1. 需要输出9行,外层循环循环9次; 2. 内层循环,控制每列;输出的列数等于行号为止; 3. 封装每一列的数据:列 * 行 = 结果 */ class Demo3 { public static void main(String[] args) { for(int i = 1 ; i <= 9 ; i++){ for(int j = 1 ; j <= i ; j++){ System.out.print(j + "*" + i + "=" + (j * i) + " "); } System.out.println(); } } }

8 循环结构循环跳转语句

(1).break:可用于switch语句,表示结束switch语句;

                      也可以用于"循环结构",表示"跳出循环(结束循环)"

              需求:

                                          从1开始,打印10个能被5整除的数:

 1 int count = 0;  2  3 int num = 1;  4  5 while(true){  6  7 if(num % 5 == 0){  8  9 count++; 10 11  System.out.println(num); 12 13 if(count == 10){ 14 15 //结束循环 16 17 break; 18 19  } 20 21  } 22 23 num++; 24 25 }

(2).continue:

1.只用于"循环结构";2.它代表立即终止本次循环,继续下一次循环;

  

 1 for(int i = 1 ; i <=50 ;i++){  2  3 if(i % 2 == 0){  4  5 continue;//立即结束本次循环,继续下一次循环  6  7  }  8  9  System.out.println(i); 10 11 }

3.return:在方法那里讲:它表示"结束当前的方法的执行"

  

 1 class Demo {  2  3 public static void main(String[] args) {  4  5 //从1 开始,打印10个能被5整除的数;  6  7 int count = 0;  8  9 int num = 1; 10 11 while(true){ 12 13 if(num % 5 == 0){ 14 15 count++; 16 17  System.out.println(num); 18 19 if(count == 10){ 20 21 //结束循环 22 23 System.out.println("break之前num = " + num); 24 25 break;//立即跳出循环体,结束循环; 26 27 System.out.println("aaa");//编译错误:无法访问的语句; 28 29  } 30 31  } 32 33 num++; 34 35  } 36 37 System.out.println("程序结束! num = " + num); 38 39 System.out.println("*"); 40 41 //continue语句: 42 43 for(int i = 1 ; i <=50 ;i++){ 44 45 if(i % 2 == 0){ 46 47 continue;//立即结束本次循环,继续下一次循环 48 49 // System.out.println("aa");//编译错误:无法访问的语句 50 51  } 52 53  System.out.println(i); 54 55  } 56 57  } 58 59 }

小芳存钱案例

小芳的妈妈每天给她2.5元钱,她都会存起来,但每当这一天是存钱的第5天或者5的倍数的话,她都会花去6元钱,请问,经过多少天,小芳才可以存到100元钱。

              1.使用循环,计算总钱数;

              2.利用钱数小于100时,作为循环的条件;

              3.在外部定义一个变量,作为天数的汇总;

class Demo { public static void main(String[] args) { int days = 0; double money = 0; while(money < 100){ money += 2.5;//每天存入2.5元; days++;//将天数自增1; if(days % 5 == 0){//  money -= 6; } } System.out.println("经过了:" + days + " 天,小芳的钱数:" + money); } }

关于循环就这么多了

版权声明


相关文章:

  • java基础循环图形2025-04-03 16:10:03
  • java基础部分整理2025-04-03 16:10:03
  • 初学java基础2025-04-03 16:10:03
  • java基础数组图解2025-04-03 16:10:03
  • 面试基础的java2025-04-03 16:10:03
  • java基础课程大纲2025-04-03 16:10:03
  • 打通经脉 java基础入门编程详解2025-04-03 16:10:03
  • java游戏开发基础2025-04-03 16:10:03
  • java基础学习书籍2025-04-03 16:10:03
  • java基础字符解释2025-04-03 16:10:03