JAVA第五课

跟日记本一起学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);
			
	}
}	    

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

未完待续。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值