JAVA第五课
2026/9/7 15:06:56 网站建设 项目流程

跟日记本一起学JAVA!相信你可以的,加油~

本课闯关内容:1.照猫画虎(0/5)

2.熟悉基础知识(0000/5????)

3.练习小问(0/2)
———————————————————————————————————————————

循环结构

语言中的结构:顺序结构、分支结构、循环结构

一、循环的概念【理解即可】

  1. 概念:通过某个条件,重复并且有规律的执行一段程序代码。
  2. 循环的组成:循环变量的初始化、循环条件、循环变量改变(递增、递减)、循环体(重复执行的代码)

基础知识1:

1. while循环:重点!!!!

公式循环变量的定义;

while(循环条件/布尔表达式){

//循环体

// (循环变量的改变)

}

是怎么个执行法呢?

执行的原理:先判断循环条件是否满足(布尔表达式的结果是否true),满足(true),则执行循环体,同时循环变量改变,接着继续判断循环条件是否满足,满足-继续执行循环体,同时循环变量改变,直到循环条件不满足(布尔表达式的结果为false),结束循环,继续执行循环后面的内容。

循环的特点:先判断,再执行,执行的次数:0~n次。

注意:循环过程中,如果循环变量没有给予任何改变,可能会出现死循环!!!

循环条件如果直接给的true,则循环一直进行,也是死循环的现象!!!

eg:参照代码为照猫画虎1:

1.假如说将代码改为没有{}中的n=n+1,那n就一直为1,

就一直达不到5这个条件,所以就会死循环。

2.将while()中写为n>0,你的起始点就比人家高,所以也会一直的不停循环,但是int类型有一个最大值是2147....到那个最大值停止。

为了停止死循环,摁ctrl+c,就会停止。

照猫画虎1:

package demo; public class Test1{ public static void main(String[]args){ //张静蹲起:5个 //while循环的特点:先判断,再执行,执行的次数:0~n次 //可能出现死循环 int n =1;//循环变量初始化 while(n<=5){ //循环条件 System.out.println("张静蹲起...第:"+n+"个"); n=n+1;//n++;n+=1;循环变量的改变 } System.out.println("ending..."); //2.打印输出1——100之间的所有的数据 int i =1;//循环变量的初始化 while(i<=100){//循环条件 System.out.println("i="+i);//循环体 i++;//循环变量的改变 } //3.20~70之间的所有的偶数 int j =20; while(j<=70){ if(j%2==0){ System.out.println("j="+j);//20 } j++;//21 } System.out.println("ending..."); int x = 20; while(x<=70){ System.out.println("x="+x); x+=2;// } } }

输出:

我没法给你们看,太多了,自己输一遍看看

假如我把中间的代码改一下:

int j =20;
while(j<=70){
if(j%2==0){
System.out.println("j="+j);//20
j++;//21
}

}

把 j++;放在if打括号里面,输出时就只会有

j=20

为什么呢?

j++;加只在if里面加,不管外面的事,输入到while里面的还是外面定义的j=20,这不会改变,

Are you understand?(((@ ~ @)))

练习1:

1.计算1+2+3+...+100的累加和,并非打印输出

2.计算1——100之间所有的奇数和并存储累加结果

结尾有答案

———————————————————————————————————————————

基础知识2:

2. do...while 循环

公式:do{ //循环体

// 循环变量改变 }

while(循环条件/布尔表达式); // 分号不能省略

执行的原理:先执行循环体,同时循环变量进行改变,再判断循环条件是否满足,满足,继续执行循环体,同时循环变量改变,再判断循环条件,直到循环条件不满足(结果为false为止),结束循环,继续执行循环后面的内容。

执行特点:先执行,再判断,执行次数:1~n次。

照猫画虎2:

package demo; import java.util.Scanner; public class Test3{ public static void main(String[]args){ //张静蹲起:5个 int n =1;//循环变量的初始化 do{ System.out.println("张静蹲起,第:"+n+"个"); n++;//循环变量的改变 }while(n<=5);//判断条件 System.out.println("ending..."); //打印输出1——100之间所有数据(do...while 循环) int n1 =1;//循环变量的初始化 do{ System.out.println("n1="+n1); n1++;//循环变量的改变 }while(n1<=100);//判断条件 /*作业检查:第一次无条件检查,当输入为n,被打回,再次被检查...直到合格,终止 */ Scanner sc=new Scanner(System.in); char result; do{ System.out.println("作业检查中..."); System.out.println("输入作业的检查结果:"); result = sc.next().charAt(0); }while(result=='n'); System.out.println("恭喜,检查pass!!!..."); } }

———————————————————————————————————————————

基础知识3:

3. for 循环(重点!!!!!)

与上面的循环结构不同的是,for()里就像上面的一堆,这里循环变量的初始化,循环条件/布尔表达式循环变量的改变都在一个()里面了

公式:

for(循环变量的初始化;循环条件/布尔表达式;循环变量的改变){

//循环体④

}

循环变量的初始化,这部分仅执行一次

  1. 循环执行的原理:先进行循环变量的初始化①,然后判断循环条件②,条件成立(结果为true),执行的循环体④,

接着执行循环变量的改变③,再次判断循环条件②,条件成立,继续执行循环体④,再次改变循环变量③,直到循环条件不成立(结果为false),结束循环,继续循环之后的内容。

1->2->4->3->2->4->3->直到循环条件不成立........

特点:先判断,再执行,执行的次数:0~n次。

  1. 注意:

a. for后面的()中循环变量的改变可以写在循环体中:

for(循环变量的初始化;循环条件; ){

// 循环体

// 循环变量的改变 ------------>不建议

}

b. for()中的循环变量的定义及初始化可以写在循环的前面,但是定义循环的前面的循环变量,作用范围扩大,开发时,通常将循环变量的定义及初始化定义在()中,这种定义变量只能在for循环结构中使用,循环结束,循环变量也被收回,减小空间,从而提高空间的利用率。

照猫画虎3:

package demo; import java.util.Scanner; public class Test4{ public static void main(String[]args){ //张静蹲起:5个 for(int i=1;i<=5;i++){ System.out.println("张静蹲起...第:"+i+"个"); } //System.out.println("ending...1111"+i);因为超出循环范围 //打印输出:1——100之间的数据 for(int i=1;i<=100;i++){ System.out.println("i="+i); } int sum=0; for(int i=1;i<=100;i++){ sum+=1; } System.out.println("sum="+sum); //4.打印输出 所有三位数 //5.计算50——200之间能被3整除的数据和,并打印出来 for(int i=100;i>=100&&i<1000;i++){ System.out.println(i); } int sum1=0; for(int i=50;i>=50&&i<=200;i++){ if(i%3==0){ sum1=sum1+i; } } System.out.println("sum1="+sum1); } }

声明变量,写在外面int i=1,范围广,写在for的里面,变量会随着循环的结束而消失,(如果写在外面eg:外面:int i=1,后面:就不能为i了,你之后的变量都要改一个新名字,甚至造成你下面用的时候变量的污染,所以最好写在里面)

总结:

  1. 如果循环次数明确时,建议使用for
  2. 如果循环次数不明确时,建议使用while或是do..while

———————————————————————————————————————————

基础知识4:

三、循环的控制语句【重点】

  1. break:用在循环中,代表结束,终止、跳出循环结构。
  2. continue:结束本次循环,从而进入下一次循环。

注意:break:不仅可以用在循环中还可以用在switch...case结构,continue只能用在循环中。

照猫画虎4:

package demo; import java.util.Scanner; public class Test5{ public static void main(String[]args){ //break:终止,结束循环结构 for(int i=1;i<=5;i++){ if(i==3){break;} System.out.println("i="+i);//i=1;i=2; } System.out.println("ending..."); //continue:中断,结束本次循环,从而进入下一次 for(int i=1;i<=5;i++){ if(i==3){continue;} System.out.println("i="+i);//i=1;i=2;i=4;i=5; } System.out.println("ending..."); //计算100——1000之间的数据累加和,当累加和大于5000时,结束累加,打印输出结果 int sum=0; for(int i=100;i>=100&&i<=1000;i=i+1){ if(sum>5000){break;} sum=sum+i; System.out.println("sum="+sum); } System.out.println("ending..."); } }

代码:

for(int i=1;i<=5;i++){
if(i==3){break;}

System.out.println("i="+i);//i=1;i=2;
}
System.out.println("ending...");

输出:

i=1
i=2
ending...(意思是从一慢慢加一,直到i等于3,因为break就跳出这个循环,所以到了3之后就没有了,这个循环终止了,呜呜呜好伤心)

代码:

for(int i=1;i<=5;i++){
if(i==3){continue;}

System.out.println("i="+i);//i=1;i=2;i=4;i=5;
}
System.out.println("ending...");

输出:

i=1
i=2
i=4
i=5
ending...(又是直到i到3,因为continue跳出了这次的循环,但接下来的循环依旧继续,3的那次循环不见了)

注意:代码中的:

if(i==3){break;}和if(i==3){continue;}

这里的continue和break也可以不带{},结果没有影响。

———————————————————————————————————————————

基础知识5:

四、循环的嵌套

  1. 概念:在一个循环结构中,又定义了一个完整的循环结构。
  2. 双层循环的循环次数:外层循环次数*内层循环的次数

3. break 和 continue用在循环嵌套中: break : 终止、跳出本层的循环

continue:结束本层本次循环,从而进入下一次循环。

  1. 双层循环可以用于打印输出图形,通常用外层循环控制图形的行数,内层循环控制图形的列数(你可以尝试着做爱心~~~~)

照猫画虎5:

package demo; public class Test6{ public static void main(String[] args){ // 循环的嵌套 // 外层 for(int i=1;i<=3;i++){ // i=4 // 内层循环 for(int j=1;j<=2;j++){ // j=2 System.out.println("i="+i+",j="+j); // 11 12 21 22 31 32 } } System.out.println("-------"); // 外层循环:控制行数 for(int j=1;j<=20;j++){ // 内层循环“控制每行的内容,控制列数 for(int i=1;i<=9;i++){ System.out.print("*"); } System.out.println();// 换行 } /* * ** *** **** ***** i=1 j=1 i=2 j=2 i=3 j=3 */ for(int i=1;i<=20;i++){ for(int j=1;j<=i;j++){ System.out.print("*"); } System.out.println();// 换行 } } }

让我们看一看图形长什么样,

*********
*********
*********
*********
*********
*********
*********
*********
*********
*********
*********
*********
*********
*********
*********
*********
*********
*********
*********
*********
*
**
***
****
*****
******
*******
********
*********
**********
***********
************
*************
**************
***************
****************
*****************
******************
*******************
********************

啊啊啊啊啊啊,太多了,下次应该把值设的小一点。

练习1答案:

package demo; public class Test2{ public static void main(String[]args){ //计算1+2+3+...+100的累加和,并非打印输出 int i=1; int sum = 0; //存储累加结果 while(i<=100){ sum=sum+i;//sum+=i; i++; } //System.out.println("sum="+sum); //计算1——100之间所有的奇数和 //存储累加结果 int i1=1; int sum2=0; while(i1<=100){ if(i1%2==1){ sum2=sum2+i1; } i1++;//20 //sum+=i; } System.out.println("sum2="+sum2); } }

跟我一步步学,慢慢跑?踏实学。

未完待续。。。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询