Java for循环嵌套

article/2025/9/24 3:26:50

一、需求

需求1:打印以下图形
                ****
                ****
                ****

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

 需求2:打印以下图形
                *       
                **     
                ***       
                ****   
                *****   

for(int i = 0;i<5;i++){for(int j = 0;j<=i;j++){System.out.print("*");}System.out.println();
}

 需求3:打印以下图形
                *****   
                ****   
                ***        
                **       
                *       

or(int i = 0;i<5;i++){for(int j = 0;j<5-i;j++){System.out.print("*");}System.out.println();
}

 需求4:打印以下图形
                *****
                 ****
                  ***
                   **
                    *

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();
}

 需求5:打印以下图形
                   *
                  ***
                 *****
                *******

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

 需求6:打印以下图形
                   *
                  * *
                 *   *
                *******

for(int i = 0;i<4;i++){for(int k = 0;k<3-i;k++){System.out.print(" ");}for(int j = 0;j<i*2+1;j++){//第一行||最后一行||每行的第一列||每行的最后一列if(i==0 || i==3 || j==0 || j==i*2){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-i*2;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-i*2;j++){//第一行||最后一行||每行的第一列||每行的最后一列if(i==0 || i==3 || j==0 || j==7-i*2-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 + "=" + (i*j) + "\t");}System.out.println();
}

 

for(int i = 1;i<=9;i++){for(int k = 1;k<i;k++){System.out.print("\t");  //如果用idea编辑需要多加一个"\t"}for(int j = i;j<=9;j++){System.out.print(i + "x" + j + "=" + (i*j) + "\t");}System.out.println();
}

二、While循环

2.1语法结构

while(表达式){
                    ...代码块/循环体...
                }

2.2理解

表达式的结果必须是boolean
                    true -- 执行代码块
                    false - 跳出循环 

2.3死循环

while(true){
                    System.out.println("用良心做教育");
                } 

while循环变形记:使用while循环去描述for循环(输出5遍"用良心做教育") 

//总结:while循环可以代替for循环,但是可读性较差int i = 0;while(i<5){System.out.println("用良心做教育");i++;}

 2.4案列

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

public class Test02{public static void main(String[] args){int money = 3000;//当月应存钱数int allMoney = 0;//存的总金额int month = 0;//记录多少个月while(allMoney < 200000){allMoney += money;month++;if(month%12 == 0){money += 1000;}}System.out.println(month + "个月后存满20万");}
}

 三、do...while...循环

3.1语法结构

do{
                    ...代码块/循环体...
                }while(表达式);

3.2理解 

表达式的结果必须是boolean
                    true -- 执行代码块
                    false - 跳出循环 

3.3执行顺序 

1.执行一遍代码块
                2.判断条件 - 表达式的结果必须是boolean
                    true -- 又执行代码块,重复第2个步骤
                    false - 跳出循环 

3.4死循环 

do{
                    System.out.println("用良心做教育");
                }while(true); 

3.5案列 

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

Scanner scan = new Scanner(System.in);String str;do{System.out.println("张三:旋转、跳跃,我闭着眼...");System.out.println("张三:老师,您满意了吗?");str = scan.next();}while(str.equals("不满意"));

3.6 for vs while vs do-while

表达式的区别:
                for(初始化变量;判断条件;更新变量){}
                while(判断条件){}
                do{}while(判断条件);
                注意:判断条件的结果必须是boolean,true就循环,false就跳出循环

执行顺序的区别:
                for:先判断,再执行
                while:先判断,再执行
                do-while:先执行一遍再判断 

应用场景:
                循环次数固定时,使用for循环
                循环次数不固定时,并且先判断再执行,使用while循环
                循环次数不固定时,并且先执行一遍再判断,使用do-while循环 

四、特殊的流程控制语句 

1.break
                作用:作用于循环中,表示结束当前循环
                做实验:
                    while(true){
                        System.out.println("111");
                        System.out.println("222");
                        if(true){
                            break;
                        }
                        System.out.println("333");
                    } 

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

Scanner scan = new Scanner(System.in);double sum = 0;boolean flag = true;//true-正常录入 false-非正常录入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){double avg = sum/5;System.out.println("平均分为:" + avg);}else{System.out.println("分数为负数,停止录入...");}

 2.continue
                作用:作用于循环中,表示跳过剩余的循环体,进入到下一次循环

while(true){System.out.println("111");System.out.println("222");if(true){continue;}System.out.println("333");}

案例:循环录入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
                作用:作用于方法中,表示结束当前方法

System.out.println("111");System.out.println("222");if(true){return;}System.out.println("333");

 4.lable
                含义:给循环做标记

//面试题:以下代码是否会报错?报错原因是什么?//答:这段代码根本就不会报错(考点lable)http://www.baidu.comfor(int i = 1;i<=5;i++){System.out.println("用良心做教育");}

 需求:嵌套for循环,外层循环5次,内层循环3次,当外层循环到第3次时,在内层循环中关闭掉外层循环

a:for(int i = 1;i<=5;i++){for(int j = 1;j<=3;j++){if(i == 3){break a;}System.out.println(i + " -- " + j);}}

 五、输出万年历

输入一个年份,再输入一个月份,把那个月的日历打印出来(1900年1月1日是星期一)

import java.util.Scanner;
public class Test05{public static void main(String[] args){Scanner scan = new Scanner(System.in);System.out.println("请输入年:");int year = scan.nextInt();System.out.println("请输入月:");int month = scan.nextInt();//计算1900年~输入年的总天数int allDayOfYear = 0;for(int i = 1900;i<year;i++){if(i%4==0 && i%100!=0 || i%400==0){//闰年allDayOfYear += 366;}else{//平年allDayOfYear += 365;}}//计算1月~输入月的总天数int allDayOfMonth = 0;for(int i = 1;i<month;i++){switch(i){case 1:case 3:case 5:case 7:case 8:case 10:case 12:allDayOfMonth += 31;break;case 4:case 6:case 9:case 11:allDayOfMonth += 30;break;case 2:if(year%4==0 && year%100!=0 || year%400==0){allDayOfMonth += 29;}else{allDayOfMonth += 28;}break;}}//合并总天数int allDay = allDayOfYear + allDayOfMonth + 1;//计算星期int week = allDay % 7;if(week == 0){//星期日week = 7;}//获取当月天数int day = 0;switch(month){case 1:case 3:case 5:case 7:case 8:case 10:case 12:day = 31;break;case 4:case 6:case 9:case 11:day = 30;break;case 2:if(year%4==0 && year%100!=0 || year%400==0){day = 29;}else{day = 28;}break;}//打印日历System.out.println(" ---" + year + "年" + month + "月---");System.out.println("一\t二\t三\t四\t五\t六\t日");int num = 0;//控制换行//打印空格for(int i = 1;i<week;i++){System.out.print("\t");num++;}//打印日期for(int i = 1;i<=day;i++){System.out.print(i + "\t");num++;if(num % 7 == 0){System.out.println();}}}
}

 


http://chatgpt.dhexx.cn/article/vftaacJS.shtml

相关文章

C语言for循环语句及嵌套(误区,易错点要理解)

目录 前言 例题1&#xff1a; 例题2&#xff1a; for循环中contiune的使用&#xff1a; 前言 大家好&#xff0c;相信刚学C语言的小白们&#xff0c;觉得for循环是比较好用的&#xff0c;但是有时候写for循环语句的程序时&#xff0c;写出来的代码结果&#xff0c;和自己想要…

for循环嵌套

文章目录 一、什么是循环嵌套&#xff1f;二、实例1.输出一个矩阵2.输出九九乘法表 一、什么是循环嵌套&#xff1f; 外层循环和内层循环交叉执行&#xff0c;外层 for 每执行一次&#xff0c;内层 for 就要执行符合循环条件的次数。 二、实例 1.输出一个矩阵 代码如下&…

44. python的for循环嵌套

44. python的for循环嵌套 文章目录 44. python的for循环嵌套1. 什么是嵌套2. for循环中嵌套有if条件判断语句2.1 先创建一个奇数序列2.2 判断一个数是否能被7整除2.3 将2部分代码合二为一 3. for循环中嵌套有for循环 1. 什么是嵌套 嵌套是指一个对象中包含另一个与它相似的对象…

【C语言初学必看】一知半解的for循环嵌套for循环

&#x1f525;&#x1f680;前言目录&#xff1a; 初学C语言&#xff0c;常常遇到for循环中嵌套个for循环&#xff0c;初学者对于这种形式总是一知半解&#xff0c;这次我就整理了常见的for循环嵌套for循环的题目&#xff0c;我们一起争取一举拿下这类题。学废他们&#xff0c;…

双重for循环(嵌套for循环)

什么是双重循环&#xff1f; 双重循环&#xff1a;我们从字面上理解它&#xff0c;就是有两个循环套在一起 详细解释 双重for循环就是在一个for循环里在嵌套另一个for循环&#xff0c;即两个循环嵌套&#xff0c;还有多重循环嵌套的情况&#xff0c;但用的比较少&#xff0c…

DRN ---Closed-loop Matters: Dual Regression Networks for Single Image Super-Resolution

Closed-loop Matters: Dual Regression Networks for Single Image Super-Resolution 这篇博客主要介绍一下DRN&#xff0c;这是2020年最新出来超分辨重建文章。相信大家都阅读过很多超分辨率的文章&#xff0c;都知道超分辨率是一病态的问题。因为在现实生活中一张低分辨率图…

深度学习——Dual Regression Networks for Single Image Super-Resolution(DRN)

CVPR2020原论文&#xff1a;Closed-loop Matters: Dual Regression Networks forSingle Image Super-Resolution 开源代码&#xff08;pytorch框架&#xff09;&#xff1a;https://github.com/guoyongcs/DRN 1.问题 1&#xff09;低分辨率图像&#xff08;Low Resulotion&…

DRN(CVPR2020)Dual Regression Networks

DRN: [ Closed-loop Matters: Dual Regression Networks for Single Image Super-Resolution ]DRN文论链接 SISR两个潜在的局限 学习LR到HR的隐射是一个病态问题&#xff0c;因为从HR下采样到LR&#xff0c;可以有无限个HR与LR对应。所以解空间太大&#xff0c;很难找到很好的…

DRN:Dilated Residual Networks(论文解读十四)

Title&#xff1a;Dilated Residual Networks From&#xff1a;CVPR2017 Note data&#xff1a;2019/06/12 Abstract&#xff1a;提出一种有利于分类任务的扩张残差网络DRN。 Code &#xff1a;pytorch 目录 DRN论文解读 1 Abstra 2 Introduction 3 Method Degridding …

浅谈深度神经网络 — ResNet(DRN)

Deep Residual Learning for Image Recognition 1. 思想 作者根据输入将层表示为学习残差函数。实验表明&#xff0c;残差网络更容易优化&#xff0c;并且能够通过增加相当的深度来提高准确率。 核心是解决了增加深度带来的副作用&#xff08;退化问题&#xff09;&#xff0…

深度学习——BRNN和DRNN

双向循环神经网络&#xff08;Bidirectional RNN&#xff09; 双向 RNN 模型可以让你在序列的某点处不仅可以获取之前的信息&#xff0c;还可以获取未来的信息 why we need BRNN&#xff1f; 这个网络有一个问题&#xff0c;在判断第三个词 Teddy&#xff08;上图编号 1 所示&a…

DPRNN的学习

可以以非常简单的方式组织任意类型的RNN层&#xff08;不重要&#xff0c;因为我这里会换成transformer&#xff09;。 优点&#xff1a; 1.模型更小 2.性能更好&#xff08;SI-SNR&#xff09; 模型组成&#xff1a; 首先肯定是encoder和decoder了&#xff0c;一个声音的…

drndrn_seg代码

问题&#xff1a; drn文件 import pdb #pdb是 ThePythonDebugger 的缩写&#xff0c;为Python标准库的一个模块。pdb模块规定了一个Python程序交互式源代码调试器&#xff0c;支持在设置断点&#xff08;包括条件断点&#xff09;&#xff0c;也支持源码级单步调试&#xff…

深度学习——DRD-Net

CVPR2020原论文&#xff1a;Detail-recovery Image Deraining via Context Aggregation Networks 开源代码&#xff08; tensorflow框架&#xff09;&#xff1a;https://github.com/Dengsgithub/DRD-Net 1.主要工作&#xff1a;提出了双分支去雨网络。一个分支为基于压缩激励…

论文阅读:DRN: A Deep Reinforcement Learning Framework for News Recommendation

文章目录 摘要一、Introduction1、引入原因2、结构框架 二、相关工作1、新闻推荐算法2、推荐中的强化学习3、问题定义 三、实现原理1、模型框架2、特征构造3、深度强化推荐Deep Reinforcement Recommendation4、用户活跃度5、探索 四、实验结果1、数据集2、评价指标3、实验设置…

使用飞桨PaddlePaddle复现用于图像光源处理的深度重照明网络(DRN)

使用飞桨PaddlePaddle复现用于图像光源处理的深度重照明网络&#xff08;DRN&#xff09; 一、效果展示二、实现思路冠军模型&#xff1a;Wavelet Decomposed RelightNet (WDRN)经典模型&#xff1a;Norm-Relighting-U-Net (NRUNet)本次项目&#xff1a;Deep Relighting Networ…

弱监督学习框架 Detectron2/DRN-WSOD-pytorch 在服务器/windows上配置安装及使用

最近做弱监督学习研究&#xff0c;进行相关分析。发现Detectron2是一个不错的框架&#xff0c;其中也有model zoo相当多种类的预训练模型可以拿来直接用。但是安装配置使用中碰到了许多坑。跟各位小伙伴们分享。 推荐使用Linux Ubuntu16.04以上版本安装&#xff0c;虚拟机不太…

大话深度残差网络(DRN)ResNet网络原理

—— 原文发布于本人的微信公众号“大数据与人工智能Lab”&#xff08;BigdataAILab&#xff09;&#xff0c;欢迎关注。 一说起“深度学习”&#xff0c;自然就联想到它非常显著的特点“深、深、深”&#xff08;重要的事说三遍&#xff09;&#xff0c;通过很深层次的网络实现…

DRN: A Deep Reinforcement Learning Framework for News Recommendation学习

欢迎转载&#xff0c;请注明出处https://blog.csdn.net/ZJKL_Silence/article/details/85798935。 本文提出了&#xff08;基于深度Q-learning 的推荐框架&#xff09;基于强化学习的推荐系统框架来解决三个问题&#xff1a; 1&#xff09;首先&#xff0c;使用DQN网络来有效建…

【超分辨率】(DRN)Closed-loop Matters: Dual Regression Networks for Single Image Super-Resolution

论文名称&#xff1a;Closed-loop Matters: Dual Regression Networks for Single Image Super-Resolution 论文下载地址&#xff1a;https://arxiv.org/pdf/2003.07018.pdf 论文代码地址&#xff1a;https://github.com/guoyongcs/DRN 但是代码有问题 论文标题&#xff1a; 1…