二重循环:

1.什么是二重循环:

                        一个循环体内又包含另一个完整的循环结构
语法:
while(循环条件1) {
//循环操作1
while(循环条件2) {
//循环操作2
}
} do {
//循环操作1
do {
//循环操作2
}while(循环条件1);
}while(循环条件2); for(循环条件1) {
//循环操作1
for(循环条件2) {
//循环操作2
}
} while(循环条件1) {
//循环操作1
for(循环条件2) {
//循环操作2
}
}
※各种循环可以相互嵌套

2.二重循环执行顺序:

外层循环执行1次内层循环执行1周

案例:
若有3个班级各4名学员参赛,如何计算每个班级参赛学员的平均分?
public class Demo02 {
public static void main(String[] args) {
Scanner input=new Scanner(System.in); //二重循环 /**
*
* 外层循环执行一次,内层循环执行1周
*
*/
for (int i = ; i <=; i++) {
System.out.println("*************************************");
System.out.println("请输入第"+i+"个班级4位学员的成绩:");
int [] scores=new int[]; //学员成绩数组
double sum=0.0; //计算总和
for (int j = ; j <scores.length; j++) {
System.out.println("请输入第"+(j+)+"位学员的成绩:");
scores[j]=input.nextInt();
sum=sum+scores[j];
}
System.out.println("第"+i+"个班级的平均分为:"+sum/scores.length);
}
}
}
案例:打印矩形
public class Demo03 {
public static void main(String[] args) {
//外层循环控制行数
for (int i = ; i <=; i++) {
//内层循环控制个数
for (int j = ; j <=; j++) {
System.out.print("*");
}
System.out.println();
}
}
}

3.在二重循环中使用 continue:使用continue代表结束当前循环,继续下一次循环

案例:若有3个班级各4名学员参赛,计算每个班级参赛学员平均分,统计成绩大于85分学员数
public class Demo04 {
public static void main(String[] args) {
Scanner input=new Scanner(System.in); //二重循环 /**
*
* 外层循环执行一次,内层循环执行1周
*
*/ int count=; //存储大于85分的人数
for (int i = ; i <=; i++) {
System.out.println("*************************************");
System.out.println("请输入第"+i+"个班级4位学员的成绩:");
int [] scores=new int[]; //学员成绩数组
double sum=0.0; //计算总和
for (int j = ; j <scores.length; j++) {
System.out.println("请输入第"+(j+)+"位学员的成绩:");
scores[j]=input.nextInt();
sum=sum+scores[j];
if(scores[j]<){
//结束本次循环,进入下一次循环
continue;
}
count++;
}
System.out.println("第"+i+"个班级的平均分为:"+sum/scores.length);
}
System.out.println("分数大于85的人数:"+count);
}

4.在二重循环中使用 break:使用break代表结束(跳出)当前循环

案例:有5家衣服专卖店,每家最多购买3件。用户可以选择离开,可以买衣服 最后打印总共买了几件衣服 

                    public class Demo05 {
public static void main(String[] args) {
Scanner input=new Scanner(System.in);
int count=;
//外层循环控制5家店
for (int i = ; i <=; i++) {
System.out.println("欢迎光临第"+i+"家店");
//内层循环控制最多买3件衣服
for (int j = ; j <=; j++) {
System.out.println("是否离开(y/n)");
char chois=input.next().charAt();
if(chois=='y'){
//如果输入Y代表离开
break;
}
System.out.println("买了一件衣服");
count++;
}
}
System.out.println("共买了"+count+"件衣服");
}
}

小白的java学习之路 “ 二重循环”的更多相关文章

  1. 小白的java学习之路 “ 循环结构(一)”

    循环: 重复得做某一件事情 举例: 打印50份试卷 沿操场跑10圈 做100道编程题 循环结构的特点: 循环条件 (50,10,100) 循环操作 (打印试卷,沿操场跑圈,做编程题) while 循环 ...

  2. 小白的java学习之路 “ 循环结构(二)”

    一.for 循环 语法: for(表达式一;表达式二;表达式三){ 循环操作 } 表达式一:参数初始化 表达式二:条件判断 表达式三:更新循环变量 执行流程: 步骤一:执行表达式一.初始化参数 步骤二 ...

  3. 小白的java学习之路 “ 数组”

    数组 一.什么是数组: 数组是一个变量,存储相同数据类型的一组数据 声明一个变量就是在内存空间划出一块合适的空间 声明一个数组就是在内存空间划出一串连续的空间 二.数组基本要素: 标识符:数组的名称, ...

  4. 小白的java学习之路 “ 选择结构(一)”

    if选择结构: if选择结构是根据条件判断之后再做处理的一种语法结构. 1.if选择结构的语法: public class Demo{ public static void main(String[] ...

  5. 小白的java学习之路 “ 变量、数据类型和运算符”

    一.变量: 1.什么是变量? 变量是一个数据存储空间的表示 变量由:变量名  变量类型  变量的值 2.创造变量的两种方法: 1.声明-->赋值-->取值 //声明变量 int money ...

  6. 小白的java学习之路 “ 带参数的方法”

    一.带参数的方法: 1.1 语法: <访问修饰符> 返回类型 <方法名>(<形式参数列表>) { //方法的主体 } 1.2 案例: 榨汁机 public clas ...

  7. 小白的java学习之路 "类的无参方法"

    Java注释: //:单行注释 /**/:多行注释 /** */:JavaDoc注释语法: 访问修饰符 返回值类型 方法名(){ 方法体 } 举例: public void run(){ System ...

  8. 小白的java学习之路 “ 类和对象”

    一.※ 万物皆对象 二.对象的两个特征: 属性:对象具有的各种特征 方法:对象执行的操作 对象:用来描述客观事物的一个实体,由一组属性和方法构成 三.封装: 对象同时具有属性和方法两项特性 对象的属性 ...

  9. 小白的java学习之路 “ 选择结构(二)”

    switch 选择结构: 为什么使用switch选择结构: switch选择结构可以更好地解决等值判断问题. switch选择结构的四个关键字: switch    case    default   ...

随机推荐

  1. css实现渐变字体和流光字体

    这是段渐变文本 .text{ font-size: 30px; font-weight: bold; background-image: linear-gradient(#ed3f27, #9b099 ...

  2. 记一个实时Linux的中断线程化问题

    背景 有一个项目对实时性要求比较高,于是在linux内核上打了RT_PREEMPT补丁. 最终碰到的一个问题是,芯片本身性能不强,CPU资源不足,急需优化. 初步分析 看了下cpu占用率,除了主应用之 ...

  3. angularJS 传参的四种方法

    AngularJS - Passing data between pages 著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处.作者:Ye Huang链接:https://www.z ...

  4. Java并发编程(三):ReentrantLock

    ReentrantLock是可以用来代替synchronized的.ReentrantLock比synchronized更加灵活,功能上面更加丰富,性能方面自synchronized优化后两者性能没有 ...

  5. Python实现IOC控制反转

    思路: 用一个字典存储beanName和资源 初始化时先将beanName和资源注册到字典中 然后用一个Dscriptor类根据beanName动态请求资源,从而实现控制反转 # -*- coding ...

  6. 01-Maven

    今日知识 1. Maven 2. 依赖管理 2. 项目构建 Maven 1. Maven是基于项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具. 2. Ma ...

  7. vue 入门 ------简单购物车功能实现(全选,数量加减,价格加减)

    简易购物车功能(无任何布局 主要是功能) 数量的加减 商品的总价钱 全选与全不选 删除(全选.价格 受影响) <script src="https://cdn.jsdelivr.net ...

  8. Tomcat 配置2 tomcat-users.xml

    Tomcat的配置 Tomcat的主要配置文件有3个,分别是:    Tomcat-users.xml.    web.xml    server.xml. 配置Tomcat-users.xml 该文 ...

  9. Linux安装Redis,在测试阶段即make test出现“You need tcl 8.5 or newer in order to run the Redis test”问题解决方案

    Linux安装Redis,在测试阶段即make test出现"You need tcl 8.5 or newer in order to run the Redis test"问题 ...

  10. asp.net core 3.1 入口:Program.cs中的Main函数

    本文分析Program.cs 中Main()函数中代码的运行顺序分析asp.net core程序的启动,重点不是剖析源码,而是理清程序开始时执行的顺序.到底用了哪些实例,哪些法方. asp.net c ...