首页 > 代码库 > 循环进阶---->一环套一环
循环进阶---->一环套一环
二重循环的几种语法:
//while与while循环嵌套 while (循环条件1) { //循环操作1 while (循环条件2) { //循环操作2 } } //do-while与do-while循环嵌套 do { //循环操作1 do { //循环操作2 } while (循环条件2); } while (循环条件1); //for与for循环嵌套 for (循环条件1) { //循环操作1 for (循环条件2) { //循环操作2 } } //while与for循环嵌套 while (循环条件1) { //循环操作1 for (循环条件2) { //循环操作2 } }
上例子环节:
package cn.jbit.nestedloops; /** * 打印九九乘法表 */ public class MulTable { public static void main(String[] args) { int rows = 9; //乘法表的行数 for(int i = 1; i<=rows; i++){ //一共9行 for(int j = 1; j <= i; j++){ //第i行有i个式子 System.out.print(j+"*"+i+"="+j*i+" "); } System.out.print("\n"); //打印完一行后换行 } } }
package cn.jbit.nestedloops; import java.util.Scanner; /** * 输入行数打印等腰三角形 */ public class IsoTriangle { public static void main(String[] args) { int rows = 0; //三角形行数 System.out.print("请输入等腰三角形的行数:"); Scanner input = new Scanner(System.in); rows = input.nextInt(); //打印等腰三角形 for(int i = 1; i <= rows; i++){ for(int j = 1; j <= rows-i; j++){ System.out.print(" "); } for(int k = 1; k <= 2*i-1; k++){ System.out.print("*"); } System.out.print("\n"); } } }
package cn.jbit.nestedloops; import java.util.Scanner; /** * 输入行数打印倒直角三角形 */ public class InvertRTriAngle { public static void main(String[] args) { int rows = 0; //三角形行数 System.out.print("请输入直角三角形的行数:"); Scanner input = new Scanner(System.in); rows = input.nextInt(); //打印倒直角三角形 for(int i = 1; i <= rows; i++){ for(int j = 1; j <= rows+1-i; j++){ System.out.print("*"); } System.out.print("\n"); } } }
package cn.jbit.nestedloops; import java.util.Scanner; /** * 输入行数打印直角三角形 */ public class RTriAngle { public static void main(String[] args) { int rows = 0; //三角形行数 System.out.print("请输入直角三角形的行数:"); Scanner input = new Scanner(System.in); rows = input.nextInt(); //打印直角三角形 for(int i = 1; i <= rows; i++){ for(int j = 1; j <= 2*i-1; j++){ System.out.print("*"); } System.out.print("\n"); } } }
package cn.jbit.nestedloops; import java.util.Scanner; /** * 计算一个班的平均分 */ public class AvgScore { public static void main(String args[]){ int[] score = new int[4]; //成绩数组 float sum = 0.0f; //成绩总和 float average = 0.0f; //成绩平均值 //循环输入学员成绩 Scanner input = new Scanner(System.in); System.out.println("请输入4位学员的成绩"); for(int i = 0; i < score.length; i++){ System.out.print("第"+ (i+1) +"位学员的成绩:"); score[i] = input.nextInt(); sum = sum + score[i]; //成绩累加 } average = sum / score.length; //计算平均值 System.out.println("参赛学员的平均分是:" + average); } }
package cn.jbit.nestedloops; import java.util.Scanner; /** * 统计打折商品数量 */ public class Demo { public static void main(String[] args) { int count = 0; //记录打折商品数量 Scanner input = new Scanner(System.in); double price=0.0; //商品价格 for(int i = 0; i < 3; i++){ System.out.println("请输入第"+(i+1) +"个人所购的三件商品的价格:"); for(int j = 0; j < 3; j++){ price=input.nextDouble(); if(price<300) continue; count++ ; //累计 } System.out.println("第"+(i+1) +"个人共有" +count + "件商品享受8折优惠!"); count=0;//重置count值 } } }
package cn.jbit.nestedloops; public class Chook { /** * 百钱买百鸡 */ public static void main(String[] args) { int way = 1; //买法 int k = 0; //雏鸡数 for(int i=1;i<=20;i++){ //公鸡数 for(int j=1;j<=33;j++){ //母鸡数 k = 100-i-j; //一共100只鸡 if(k%3 == 0 && (5*i+3*j+k/3 == 100)){//雏鸡数是3的倍数,总计100文钱 System.out.print("[买法 " + way++ + "] "); System.out.println("公鸡: " +i+ " 母鸡:" +j+ " 雏鸡:" +k); } } } } }
package cn.jbit.nestedloops; import java.util.Scanner; /** * continue断点演示:计算成绩85分以上的学员人数 * */ public class AvgScore { public static void main(String[] args) { int[] score = new int[4]; //成绩数组 int classnum = 3; //班级数目 double sum = 0.0; //成绩总和 double average = 0.0; //平均成绩 int count = 0; //记录85分以上学员人数 //循环输入学员成绩 Scanner input = new Scanner(System.in); for(int i = 0; i < classnum; i++){ System.out.println("请输入第" + (i+1) + "个班级的成绩"); for(int j = 0; j < score.length; j++){ System.out.print("第" + (j+1) + "个学员的成绩:"); score[j] = input.nextInt(); if(score[j] < 85){ //成绩小于85,则跳出本轮循环 continue; } sum = sum + score[j]; //成绩85分以上才进行累加 count++; } } average = sum / count; //所有成绩85分以上的学员的平均分 System.out.println("所有成绩85分以上的学员的平均分为:" + average); } }
package cn.jbit.nestedloops; import java.util.Scanner; public class ATMDemo { /** * 简单ATM机取款过程模拟 */ public static void main(String[] args) { String pass = ""; //保存用户输入密码 int amount = 0; //取款金额 String password = "111111"; //用户密码 int count = 0; //记录密码输入次数 boolean isPass = false; //密码是否通过验证 Scanner input = new Scanner(System.in); while(count < 3 && !isPass){ System.out.print("请输入密码:"); pass = input.next(); if(!password.equals(pass)){ count++; continue; } isPass = true; //密码通过验证 System.out.print("请输入金额:"); amount = input.nextInt(); while(amount>0){ if(amount<=1000 && amount%100==0){ System.out.println("您取了" +amount+ "元"); System.out.println("交易完成,请取卡!"); break; //完成交易,退出 }else{ System.out.print("您输入金额的金额不合法,请重新输入:"); amount = input.nextInt(); continue; //继续让用户输入金额 } } } if(!isPass){ //用户输入了3次错误密码 System.out.print("密码错误,请取卡!"); } } }
package cn.jbit.nestedloops; import java.util.Scanner; /** * 输入行数打印菱形 */ public class Diamond { public static void main(String[] args) { int rows = 0; //菱形的行数 Scanner input = new Scanner(System.in); System.out.print("请输入菱形行数:"); rows = input.nextInt(); while(rows%2 == 0){ System.out.print("请输入奇数:"); rows = input.nextInt(); } int n = (rows+1)/2; //打印菱形的上半部分 for(int i = 1; i <= n; i++){//外层循环变量i控制行数 for(int j = 1; j <= n-i; j++){//内层循环变量j控制该行空格数 System.out.print(" "); } for(int k = 1; k <= 2*i-1; k++){//内层循环变量k控制该行*号数 System.out.print("*"); } System.out.print("\n"); } //打印菱形的下半部分 for(int i = n-1; i >= 1; i--){ for(int j = 1; j <= n-i; j++){ System.out.print(" "); } for(int k = 1; k <= 2*i-1; k++){ System.out.print("*"); } System.out.print("\n"); } } }
循环进阶---->一环套一环
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。