while循环do...while循环及for循环

本文详细介绍了Java中的三种循环结构:while、do…while和for循环,包括它们的工作原理和使用示例。通过实例展示了如何计算序列和、输出特定条件的数字以及处理死循环。同时,强调了for循环在程序中的广泛应用和灵活性。
摘要由CSDN通过智能技术生成

循环结构

  • while 循环

  • do…while 循环

  • for 循环

    顺序结构只能执行一次,循环结构可以无限执行

  • 在Java5中引入了一种主要用于数组的增强型for循环。

while 循环

  • while是最基本的循环,它的结构为:

    while(布尔表达式){
        //循环内容
    }
    
    • 只要布尔表达式为true,循环就会一直执行下去

      (只要布尔表达式条件为真,就会一直走下去)

示范

package struct;

public class WhileDay01 {
	
	public static void main(String[] args) {
		
	//输出1~100
		int i = 0;
		while (i<100) {
			i++;
			//i++    i+1  先赋值在+1
			System.out.println(i);
		}		
	}	
}

我们先输入一个i=0. 然后再用while循环 while(布尔表达式){

循环条件 }进行

while的循环条件是布尔表达式必须为true。

我们需要输出的内容是1~100.

可以在布尔表达式里面输入, “i<100”

意思是i小于100

然后我们在循环条件里面输入i++

意思i自增当然**++i也可以**

这样整段代码

int i = 0;
		while (i<100) {
			i++;
			//i++    i+1  先赋值在+1
			System.out.println(i);
		}

然后我们输出一下,

在这里插入图片描述

就是1~100了

整片代码的意思是

i=0时, while(i<100)  //条件成立,为true, 代码执行 {
    i++   //执行代码i++     i++:先赋值,在自增 (当然++i也可以)
    }
System.out.println(i);

输出i  i=0 小于100  代码执行 i++   i+1(0+1)= 1 
    再次循环 i=1   
    然后i=2
    以此推类

死循环

package struct;

public class WhileDay02 {
    public static void main(String[] args) {
    	//死循环
    	while (true) {
    	//等待客户端连接	                      //(true)意思是永远是对的,一直执行 
    	//定时检查
    	//..............	    		
    	  }  	
    }
}
  • while(true)里面为true的时候,将视为可执行

    然后就会一直无限循环的执行下去

思考一下

计算1+2+3+…+100=?

等于多少该怎么用代码计算

示列

package struct;

public class WhileDat03 {
	public static void main(String[] args) {
	//计算1+2+3+...+100=?
		
		
		int i = 0;
		int sum = 0;
		while (i<=100) {
			sum = sum + i;
			i++;
		}
		System.out.println(sum);
	}

我们先设置一个int类型的i 和sum分别为零

然后再谁知while(i<=100) //因为1+2+3…+100 是有100的所以,需要<=

然后再循环内输入,sum(和)= sum + i ;

再输入一个i++; 目的是让i没循环一次,就+1

这样,我们在运行一下sum 答案等于5050

do…while 循环

  • 对于while语句而言,如果不满足条件,则不能进入循环,有时候我们需要不满足条件,至少执行一次,所以就有了do…while 循环,他很while循环相似,不同的是do…while循环至少会执行一次

语句

do{
    //代码语句
}while(布尔表达式);

while和do…while的区别:

  • while先判断后执行,do…while先执行后判断!

  • Do…while总是保证循环体会被至少执行一次!这是他们的主要差别

    示范

    package struct;
    
    public class DoWhileDay02 {
    	public static void main(String[] args) {
    		int a = 0;
    		while(a<0) {
    			System.out.println(a);
    			a++;
    		}
    				System.out.println("===========================");
    		do {
    			System.out.println(a);
    			a++;
    		}while(a<0);		
    	}
    }
    

运行一下,得出结构
在这里插入图片描述

为什么只有分割线下面有0的原因是

while(a<0)执行循环一次,但是有a++,此时a=1大于0.无法执行

do…while(a<0)是先执行一次,在判断

所以分割线下面的do…while(a<0)运算出来了

For 循环,程序中用到最多的循环★(重点)

语法格式

for(初始化;布尔表达式;更新){
    //代码语句
}

示列

package struct;

public class ForDay01 {
    public static void main(String[] args) {
    	int a = 1;//初始化条件
    	while(a<=100) {//条件判断
    		System.out.println(a);//循环体
    		a += 2;// a = a+2 的意思   //迭代
    		
    	}
    	System.out.println("while循环结束!");
    	//初始化值//条件判断//迭代
    	for(int i = 1;i<=100;i++) {
    		System.out.println(i);
    	}
    	System.out.println("for循环结束!");
    }
	
}

运算一下,最后for循环跟while循环一下

初始化:int i = 1;

条件判断:i<=100;

更新:也是 迭(die 第三声)代 就是i++ 或者 a +=2

for 循环语句是支持迭代的一直通用结构,是最有效、最灵活的循环结构。

for循环注意

 /*
     * 关于for循环的几点说明:
     * 最先执行初始化步骤。可以声明一种类型,但可初始化一个或多个循环控制变量,也可以是空语句。
     * 然后,检测布尔表达式的值。如果为true,循环继续进行,如果为false。循环终止,开始执行循环后面的语句
     * 执行一次循环后,更新循环控制变量(迭代因子控制循环遍历的增减)
     * 再次检测布尔表达式。循环执行上面的过程. 
     * */
for(;;){
    
}

带for循环没有任何值的时候,会变成一个死循环

因为没有布尔表达式,没有迭代,会一直执行下去**!!!!!!**

不相信的你们可以试一下

for循环练习

练习1:计算0到100之间的奇数与偶数的和

package struct;

public class ForDay02 {
	public static void main(String[] args) {
		//练习1:计算0到100之间的奇数与偶数的和
		int oddSum = 0;    //保存奇数的和
		int evenSum = 0;    //保存偶数的和		
		//如果int i = 0   那么i<100成立, 就走循环的路
		for (int i = 0;i<=100;i++) {
			if(i%2!=0) {       //奇数    //% 是模运算                          //!= 是不等于的意思
                
                
			oddSum+=i;	 //oddSum=  oddSum+i
		}else {  //偶数    //else : 反之
			evenSum+=i;   //evenSum=everSum+i
		}			
	}		
		System.out.println("奇数的和:"+oddSum);
		System.out.println("偶数的和:"+evenSum);
	}
}

if(i%2!=0)
    //%是模运算,用来求余数的
    1/2=0.5   余数是5 不等于0 所以是奇数
    2/2=1.0 余数是0  等于零  所以是偶数

练习2:用while或for循环输出1-1000之间能被5整除的数,并且每行输出3个

示列

package struct;

public class ForDay03 {
	public static void main(String[] args) {
	  //练习2:用while或for循环输出1-1000之间能被5整除的数,并且每行输出3个	
		for (int i = 1;i<=1000;i++) {
			if(i%5==0) {
				System.out.print(i+"\t");
				
			}
			if(i%(5*3)==0) {  //每行
				System.out.println();
				//System.out.print("\n");
			}
			
		//println 输出完会换行
	    //print 输出完不会换行
						
		}		
	}
}

1000里面被5整除的数字的方法

这里if(i%5==0)也是跟上面一样

只有5的倍数才可以等于0

每行3个之后就换行的方法

但是下面的if(i%(5*3)==0)

代码是按照从上往下的顺序执行的,所以上面代码执行完之后,输出的只有5的倍数的数字了,

然后if(i%(5*3)==0) 的意思是,数字被15整除之后,余数为零就执行这行代码

System.out.println();是换行的意思

println是 输出完会换到下一行

print是输出完,不会换行,继续输出下去

System.out.print(i+"\t"); 那个\t的意思是空格

在我发布的文章里面的那个 数据拓展 的文章里面有讲到 \t \ n 之类的

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值