java基础之for循环嵌套

一、嵌套for循环

案例:

案例一:

打印三行四列的长方形

for(int i = 0;i<3;i++){//控制行数
	for(int j = 0;j<4;j++){//控制列数
		System.out.print("*");
		}
		System.out.println();//换行
	}

案例二:

打印三角形

*
**
***
****
*****
for(int i = 0;i<5;i++){//控制行数
	for(int j = 0;j<= i;j++){//控制列数
		System.out.print("*");
	}
	System.out.println();//换行
	}
				

案例三:

*****
****
***
**
*
	for(int i = 0;i<5;i++){//控制行数
					
		for(int j = 0;j<5-i;j++){//控制列数
				System.out.print("*");
		}
		System.out.println();//换行
	}

案例四:

				*****
				 ****
				  ***
				   **
				    *	
				for(int i = 0;i<5;i++){//控制行数
				
					for(int k = 0;k<i;k++){//打印空格
						System.out.print(" ");
					}
					
					for(int j = 0;j<5-i;j++){//打印星星
						System.out.print("*");
					}
					System.out.println();//换行
				}	
					

案例五:

				  *
				 ***
				*****
			   *******
			   
			   for(int i = 0;i<4;i++){
					for(int k = 0;k<3-i;k++){
						System.out.print(" ");
					}
					for(int j = 0;j<2*i+1;j++){
						System.out.print("*");
					}
					System.out.println();
				}	

案例六:

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

			for(int i = 0;i<4;i++){
				for(int k = 0;k<3-i;k++){
					System.out.print(" ");
				}
				for(int j = 0;j<2*i+1;j++){
					if(j==0 || j==2*i || i==3){
						System.out.print("*");
					}else{
						System.out.print(" ");
					}
				}
				System.out.println();
			}	

案例7:

  *******
   *****
    ***
	 *
				  for(int i = 0;i<4;i++){
				
					for(int k = 0;k<i;k++){
						System.out.print(" ");
					}
					
					for(int j = 0;j<7-2*i;j++){
						System.out.print("*");
					}
					System.out.println();
				}

案例8:

   *******
	*   *
	 * *
	  *
				for(int i = 0;i<4;i++){
				
					for(int k = 0;k<i;k++){
						System.out.print(" ");
					}
					
					for(int j = 0;j<7-2*i;j++){
						if(i == 0 || j==0 || j == 7-2*i-1){
							System.out.print("*");
						}else{
							System.out.print(" ");
						}
					}
					System.out.println();
				}  

案例9:

九九乘法表

for(int i = 1;i<= 9;i++){
				for(int j = 1;j<= i;j++){
	System.out.print(j + "x" + i + "=" + (j*i) + "\t");
		}
		System.out.println();
			}

案例12:九九乘法表

for(int i = 1;i<=9;i++){
				
	for(int k = 1;k<i;k++){
		System.out.print("\t");
	}
					
		for(int j = i;j<=9;j++){
	System.out.print(i + "x" + j + "=" + (j*i) + "\t");
			}
		System.out.println();
		}	

二、while循环

1.语法结构:

​ while(表达式){
​ …代码块…
​ }

2.理解:

​ 表达式的结果一定是boolean类型
​ true - 执行代码块
​ false- 跳出循环语句

3.死循环:

​ while(true){
​ System.out.println(“死循环”);
​ }
​ System.out.println(“循环以外”);

4.案例

案例1:我有个梦想,每月存3000,每月递增1000元,多少个月后存满100万

int allMoney = 0;//总金额
int money = 3000;//当月存储的金额
int month = 1;//月
	while(allMoney < 1000000){
			allMoney += money;
             money += 1000;
	         month++;
		}
System.out.println(month + "个月后存满100万");

案例2:我有个梦想,每月存3000,每年递增1000元,多少个月后存满20万

int allMoney = 0;//总金额
int money = 3000;//当月存储的金额
int month = 1;//月
	while(allMoney < 200000){
		allMoney += money;
		if(month % 12 == 0){
		money += 1000;
			}
		month++;
		}	
	System.out.println(month + "个月后存满20万" + money);

三、do-while循环

1.语法:
			do{
				...代码块...
			}while(表达式);
2.理解:

​ 先执行一次代码块,在判断表达式,表达式的结果一定是boolean类型
​ true - 执行代码块
​ false - 跳出循环语句

3.死循环:

​ do{
​ System.out.println(“死循环”);
​ }while(true);
​ System.out.println(“循环以外”);

!!!!一定要避免

4.案例:

铃原爱蜜莉参加学校组织的歌咏比赛,大赛在即,
老师建议:先彩排一次,如果很令人满意,以后就不用彩排了,
否则每天都排,直到现场表现满意为止!

Scanner scan = new Scanner(System.in);
		String str;
				do{
					System.out.println("铃原爱蜜莉:旋转、跳跃,我闭着眼...");
					System.out.println("铃原爱蜜莉:老师,你满意了吗?");
					str = scan.next();
					
				}while(str.equals("不满意"));//判断两个字符串内容是否相等

四、for vs do-while

1.语法的区别

for(初始化变量;判断条件;更新变量){}

while(判断条件){}

do{}while(判断条件);

注意-共同点:判断条件都是boolean值,true就循环,false就跳出循环语句

2.执行顺序的区别

for:先判断再执行
while:先判断再执行
do-while:先执行一遍,再判断

3.应用场景的区别:

for:循环次数确定时
while:循环次数不确定时,先判断再执行
do-while:循环次数不确定时,先执行一遍,再判断

五、特殊流程控制语句

1.break

break:作用于循环里,跳出当前循环
案例:循环录入麻生希同学5门课的成绩并计算平均分,
如果某分数录入为负,停止录入并提示。

Scanner scan = new Scanner(System.in);
		double sum = 0;//总分
		boolean flag = true;//默认正常录入
		for(int i = 1;i<= 5;i++){
        System.out.println("请输入第" + i + "门成绩:");
		double score = scan.nextDouble();
		if(score < 0){
			flag = false;//非正常录入
			break;//跳出整个循环
					}
				sum += score;
			}
		    if(flag){
					System.out.println("平均分为:" + (sum/5));
				}else{
					System.out.println("分数为负数,停止录入");
				}
2.continue

作用于循环里,跳过剩余的代码块,进入到下一次循环

案例:循环录入Java课5名学生的成绩,统计分数大于等于80分的学生比例。

Scanner scan = new Scanner(System.in);
		int num = 0;//记录大于等于80分的学生个数
		for(int i = 1;i<=5;i++){
		System.out.println("请输入第" + i + "名学生的成绩:");
		double score = scan.nextDouble();
		if(score < 80){
			continue;
		}
            num++;
		}
				
System.out.println("分数大于等于80分的学生比例为:" + (num/5.0*100) + "%");
3.return

如果单独写,方法到此结束

Scanner scan=new Scanner(System.in);
		int num=0;
	for(int i=1;i<=5;i++){
	System.out.println("请输入第" + i + "名学生的成绩:");
	double score = scan.nextDouble();
	if(score<80){
		continue;
		}
	num++;
		}
System.out.println("分数大于等于80分的学生比例为:" + (num/5.0*100) + "%");

六、lable

lable技术:给循环做标记
需求:嵌套for循环,外层循环打印5遍,内层循环打印3遍,
当外层循环到第3遍时,在内层循环中跳出外层循环;

示例:

a:for(int i = 1;i<=5;i++){
			for(int j = 1;j<=3;j++){
				
				System.out.println("i=" + i + ",j=" + j);
				if(i == 3){
					
					break a;  //直接跳出整个循环
				}
			}
		}
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
for循环嵌套使用是指在一个for循环循环体中再嵌套另一个for循环嵌套的for循环可以有多个层次,每个层次的循环体会在外层循环每次迭代时执行一遍。内层循环的执行次数等于各层循环执行次数的乘积。这种嵌套结构可以用来处理需要多次重复的任务,并且每次重复任务中还有更小的重复任务需要执行的情况。在编程中,嵌套的for循环常用于遍历二维数组或执行多次嵌套的计算。 初学者在理解嵌套的for循环时可能会感到困惑,但有一种方法可以帮助理解。首先,先不看最外层的for循环,而是从内部的for循环开始分析。这样可以更容易理解内部循环的执行次数以及内部循环体的具体操作。然后再回过头来看最外层的for循环,这样会更清楚地明白整个嵌套循环的执行过程。 通过合理的嵌套for循环的运用,我们可以更高效地处理复杂的任务,提高程序的执行效率。当然,在使用嵌套for循环时,我们也需要注意代码的可读性和维护性,避免过多的嵌套导致代码难以理解和调试。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [Java基础之for循环嵌套.docx](https://download.csdn.net/download/weixin_43171186/11991115)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [【C语言初学必看】一知半解的for循环嵌套for循环](https://blog.csdn.net/qq_68993495/article/details/124456024)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值