我是靠谱客的博主 自由夏天,最近开发中收集的这篇文章主要介绍四、循环与循环嵌套的使用1.循环语句2.while循环3.dowhile循环4.for循环(最常用)5.三种循环的应用场景6.死循环问题7.循环控制8.循环嵌套,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

目录

1.循环语句

2.while循环

3.dowhile循环

4.for循环(最常用)

5.三种循环的应用场景

6.死循环问题

7.循环控制

8.循环嵌套


1.循环语句

//生活中循环:跑道故事,从1圈开始跑,循环跑完25圈,结束
//程序中循环:条件成立,循环执行一段代码,指定条件不满足,则跳出循环
//while循环:
/*
	语法结构:
	初始化语句---1
	while(条件判断){--2
		循环体语句--3
		增量语句--4
	}
	
	//执行流程:
	1.初始化语句,只执行一次
	2.条件判断,如果成立则执行循环体操作;否则,跳出循环
	3.循环体操作
	4.增量语句 再跳到第2句的条件判断 
*/
//案例:从第1圈开始跑,循环跑完25圈结束
int i=1;  //1.初始为第1圈
while(i<=25){  //条件判断
	System.out.println("已经跑完了第"+i+"圈");  //循环体
	i++;   //增量语句-用于改变条件判断的变量
}
//System.out.println(i);  //26

2.while循环

//案例:打印100遍“helloworld”
//int i = 1000;  //如果初始为1000,则一次都不执行
int i = 1;  //初始化语句-与条件判断有关
int b = 1;  //初始化语句? 不是

while(i<=100){  //条件判断
	System.out.println("helloworld-"+i);  //循环体
	i++;   //增量语句-要为条件判断服务
	b++;   //增量语句? 不是
}

//while循环特点: 先判断再执行,执行次数为0~n次; 适用于循环次数可预见的情况
//案例1:计算1~100的总和
//分析:1.先循环1~100  2.进行累加
int i=1;
int sum=0; //求和的变量初始为0
while(i<=100){
	sum += i;  //sum = sum+i;
	i++;
}
System.out.println("求和:"+sum);

//案例2:1~100之间所有偶数和
//分析:1.先循环1~100  2.判断为偶数,才累加
i = 1;
sum = 0;
while(i<=100){
	if(i%2==0){
		sum += i;
	}
	i++;
}
System.out.println("1~100的偶数和:"+sum);

3.dowhile循环

//dowhile循环
//语法结构:
/*
	初始化语句
	do{
	   循环体语句;
	   增量语句
	}while(条件判断);
	
	//执行流程:
	1.初始化语句--只执行一次
	2.执行循环体语句
	3.增量语句
	4.条件判断,条件成立,回到第2句继续执行循环体;否则,跳出循环
*/
//案例: 打印100遍helloworld
//int i=1000;  //也会打印1遍
int i = 1; //初始化语句
do{
   System.out.println("hello,world-"+i);
   i++;
}while(i<=100);

//dowhile特点:先执行,后判断,至少执行一次;适用于循环次数不可预见
//案例:学生先抄写作业,老师给出评语,判断是否需要继续抄写
//while:
/*
System.out.println("学生正在抄写作业...");
System.out.println("抄写作业完毕...");
System.out.println("请判断是否需要继续抄写:(y/n)");
Scanner sc = new Scanner(System.in);
char flag = sc.next().charAt(0);
while(flag=='y'){
	System.out.println("学生正在抄写作业...");
	System.out.println("抄写作业完毕...");
	System.out.println("请判断是否需要继续抄写:(y/n)");
	flag = sc.next().charAt(0);
}
System.out.println("抄写完毕~!");
*/

//dowhile-先执行,后判断;  适用于循环次数不可预见
Scanner sc = new Scanner(System.in);
char flag;
do{
	System.out.println("学生正在抄写作业...");
	System.out.println("抄写作业完毕...");
	System.out.println("请判断是否需要继续抄写:(y/n)");
	flag = sc.next().charAt(0);
}while(flag=='y');
System.out.println("抄写完毕~!");

4.for循环(最常用)

//for循环(最常用)
/*
	语法结构:
	for(初始化语句;条件判断;增量语句){
		循环体语句;
	}
	
	//执行流程: 和while很类似
	1.初始化语句--只执行一次
	2.条件判断;如果成立,则执行循环体;否则跳出循环
	3.循环体语句
	4.增量语句; 回到第2句继续判断
*/
//案例:打印100遍helloworld
for(int i=1;i<=100;i++){
	System.out.println("helloworld-"+i);
}
//System.out.println(i);  //外围不是i的作用域了

//for特点:和while类似,先判断,后执行,循环次数为(0~n次);适用循环次数可预见的情况
//案例1:请输入一个数n,求n的阶乘  例如3的阶乘: 1*2*3
/*
System.out.print("请输入求阶乘的数:");
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int ji = 1;  //求积,初始为1
for(int i=1;i<=n;i++){
	ji *= i;  //ji = ji*i;
}
System.out.println(n+"的阶乘为:"+ji);
*/

//案例2:请输入5名同学的分数,并求出平均分
//分析:1.循环5次从控制台录入  2.通过一个变量,将分数累加  3.再除以5
/*
double sum = 0;  //求和的变量
for(int i=1;i<=5;i++){
	System.out.print("请输入第"+i+"个学员成绩:");
	int score = sc.nextInt();
	sum += score;
}
System.out.println("平均分为:"+(sum/5));
*/

5.三种循环的应用场景

        1. 先判断,后执行,且循环次数可预见--for,while
        2. 先执行后判断,且循环次数不可预见--dowhile

6.死循环问题

//关于死循环问题:
//-------需要避免的死循环--------
/*
for(int i=10;i>1;i++){
	System.out.println("需要避免的死循环--增量语句与条件判断无关");
}*/

//----------漂亮死循环-------------
/*
for(;;){
	System.out.println("漂亮死循环...");
}*/
//--------最漂亮(常用)的死循环-------
while(true){  //do{}while(true);
	//一般做控制台录入
	System.out.println("常用的死循环...");
}

7.循环控制

        循环控制关键字: breakcontinue

======================continue========================
//案例1:循环打印1~10,除了3的倍数不打印---1,2,4,5,7,8,10
//分析,1,先将1~10进行循环  2.判断3的倍数不打印
/*for(int i=1;i<=10;i++){
	if(i%3==0){
		continue;  //跳出当前循环,不影响下一次循环的执行
	}
	System.out.println(i);
}*/
======================break========================
//案例2:循环打印1~10,遇到3的倍数则结束循环----1,2
for(int i=1;i<=10;i++){
	if(i%3==0){
		break;  //跳出循环
	}
	System.out.println(i);
}

应用场景:
        continue: 用在循环中,跳出当次循环的情况
        break:用在switch和循环中,结束switch和循环

======================综合案例========================
//猜数字游戏:请猜1~1000以内的数:
/*例如:答案为600(随机) 
		输入:500---小了             
		输入:700---大了
		输入:600---恭喜中500万,吃豪华大餐去;(退出循环)
		
  升级1: 加入随机数
  升级2: 加入范围提示---最大值max  最小值min
  升级3: 加入异常判断,如果输入的数比min小或比max大	
*/

//Math.random();  0.0~1.0的double类型值: 0.0<=x<1.0
//Math.random()*1000  0.0~1000  0.0<=x<1000
int daAn = (int)(Math.random()*1000)+1;  //1<=x<=1000 答案用随机数表示
Scanner sc = new Scanner(System.in);
int min = 1;
int max = 1000;
do{
	System.out.print("请输入"+min+"~"+max+"以内的数:");
	int num = sc.nextInt();
	//如果录入的值比最大值还大,或者比最小值还要小,则该值无意义
	if((num<min)||(num>max)){
		System.out.println("您的输入有误,请重新输入~");
		continue;  //如果出现问题,则直接返回
	}
	if(num>daAn){  //录入的值大于答案
		System.out.println("大了");
		max = num-1;  //最大值变了
	}else if(num<daAn){
		System.out.println("小了");
		min = num+1;  //最小值变了
	}else{
		System.out.println("恭喜你,中了500万,吃豪华大餐~");
		break;
	}
}while(true);

8.循环嵌套

//循环嵌套: 在循环中,再包含循环
/*
	打印3行4列的*
	****
	****
	****
	分析:先考虑打印1行4列--每次打印1颗星,循环4次
*/
for(int i=1;i<=3;i++){ //外层打印行
	//****
	for(int j=1;j<=4;j++){   //内层打印列
		System.out.print("*");
	}
	System.out.println();  //回车
}

======================嵌套案例========================
//计算3个班,每个班5名同学的平均成绩
//分析:可以看成3行5列学员录入
Scanner sc = new Scanner(System.in);

for(int i=1;i<=3;i++){
	double sum = 0;
	for(int j=1;j<=5;j++){
		System.out.print("请输入第"+i+"个班,第"+j+"名学员成绩:");
		int score = sc.nextInt();
		sum += score;  //学员成绩累加
	}
	
	System.out.println("第"+i+"个班的平均分为:"+(sum/5));
}
==================打印直角与等腰三角形====================
/*
   打印4行4列的直接三角形
	*
	**
	***
	****
	分析:外层循环4次(4行),内层循环次数根据外层而变化
*/
for(int i=1;i<=4;i++){ //i=1
	for(int j=1;j<=i;j++){ //打印1列
		System.out.print("*");
	}
	System.out.println(); //回车
}

/*
  打印4行的等腰三角形
	 *
	***
   *****
  *******
  分析:1.外层循环4次(4行),内层循环次数根据外层而变化
		2.在内层循环前面先推空格,第1行推3个空格,第2行2个,第三行1个
*/
for(int i=1;i<=4;i++){ //i=1,i=2
	for(int j=1;j<=4-i;j++){ //i为1,则打印3个空格  i为2,则打印2个空格..
		System.out.print(" ");
	}

	for(int j=1;j<=2*i-1;j++){
		System.out.print("*");
	}
	
	System.out.println();  //回车
}
========打印九九乘法表========

for(int i = 1;i <= 9;i++){//外层循环控制行数为9
	for(int j = 1;j <= i;j++){//内存循环跟着i的值变化
		System.out.print(j + "*" + i + "=" + j*i + 't');//使用字符串的拼接和't'制表位缩进产生空格
	}
	System.out.println();//输出空格分隔排布乘法表
}
========自动取款案例(switch,dowhile)========

Scanner input = new Scanner(System.in);//实例化对象

do{
	//输出提示语句
	System.out.println("==================欢迎使用ATM自动银行服务=================");
	System.out.println(" 1:开户 2:存款 3:取款 4:转账 5:查询余额 6:修改密码 0:退出 ");
	System.out.println("==========================================================");
				
	System.out.print("请输入操作编号:" );
	int num = input.nextInt();//定义变量num接收输入的值
	
	switch(num){
	
		//输入为0时,执行退出功能,跳出循环
		case 0:
			System.out.println("---执行退出功能---n");
			break;
		
		//输入为1,2,3,4,5,6时,执行对应功能,执行完后continue退出本次循环,进入下一次循环
		case 1:
			System.out.println("---执行开户功能---n");
			break;
		case 2:
			System.out.println("---执行存款功能---n");
			break;
		case 3:
			System.out.println("---执行取款功能---n");
			break;
		case 4:
			System.out.println("---执行转账功能---n");
			break;
		case 5:
			System.out.println("---执行查询余额功能---n");
			break;
		case 6:
			System.out.println("---执行修改密码功能---n");
			break;
		
		//输入为0~6以外的值的情况则提醒用户重新输入
		default:
			System.out.println("---输入错误,请重新输入---n");
			break;
	}
	
	//当输入0执行退出功能时,循环退出了内层循环switch,但还留在外层循环do while中,所有进行条件判断退出do while整个循环结果,不再执行其它操作
	if(num == 0){
		break;
	}
}while(true);//跳出循环是不用if判断num为0 可以改while(num != 0)

最后

以上就是自由夏天为你收集整理的四、循环与循环嵌套的使用1.循环语句2.while循环3.dowhile循环4.for循环(最常用)5.三种循环的应用场景6.死循环问题7.循环控制8.循环嵌套的全部内容,希望文章能够帮你解决四、循环与循环嵌套的使用1.循环语句2.while循环3.dowhile循环4.for循环(最常用)5.三种循环的应用场景6.死循环问题7.循环控制8.循环嵌套所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(62)

评论列表共有 0 条评论

立即
投稿
返回
顶部