java基础07 循环结构
public class While02 { public static void main(String[] args) { /** * while(循环条件){ * 循环体(循环操作) * } * 循环条件 必须是一个boolean类型的值! * 当满足了循环条件,会执行循环体,直到不满足循环条件是退出! */ System.out.println("大家辛苦了1"); System.out.println("大家辛苦了2"); System.out.println("大家辛苦了3"); System.out.println("大家辛苦了4"); System.out.println("大家辛苦了5"); System.out.println("**************************************"); // 定义一个变量 用来保存 循环的次数 int num = 0; while (num <= 10000) { System.out.println("大家辛苦了" + num); // 自身+1 num++; } System.out.println(num); } }
public class WhileDemo03 { public static void main(String[] args) { /** * 循环打印50份试卷 * 分析: * 循环条件:count<=50 小于等于50次 * 循环体: 打印试卷 */ int count = 1; while (count <= 50) { System.out.println("正在打印第" + count + "份试卷"); // 迭代变量 count++; } } }
public class WhileDemo04 { /** * 老师每天检查张浩的学习任务是否合格。 * 如果不合格,则继续进行。 老师给张浩安排的每天的学习任务为: 上午阅读教材,学习理论部分, 下午上机编程,掌握代码部分 */ public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.println("请输入是否合格?(y/n)"); String answer = scanner.next(); // 循环条件 -==》是否合格? 如果不合格 一直学习! while (answer.equalsIgnoreCase("n")) { System.out.println("阅读教材,学习理论部分"); System.out.println("上机编程,掌握代码部分"); System.out.println("再次输入是否合格?(y/n)"); answer = scanner.next(); } System.out.println("完成了 学习任务!"); } }
public class WhileDemo05 { /** * 2012年培养学员25万人,每年增长25%。 * 请问按此增长速度 * 到哪一年培训学员人数将达到100万人? */ public static void main(String[] args) { int year = 2012; double person = 25; while (person <= 100) { person *= (1 + 0.25); // person*=(1+0.25); year++; } System.out.println(year + "培训学员人数将达到100万人"); } }
public class WhileDemo06 { /** * 编程实现:计算100以内(包括100)的偶数之和 设置断点并调试程序,观察每一次循环中变量值的变化 */ public static void main(String[] args) { int num = 0; int sum = 0;// 记录所有的偶数和 while (num <= 100) { if (num % 2 == 0) { // 偶数 sum += num; // sum=sum+num } num++; } System.out.println("所有的偶数和:" + sum); } }
public class WhileDemo07 { public static void main(String[] args) { System.out.println("欢迎进入MyShopping管理系统"); System.out.println("***************************"); System.out.println("1.帽子 \t 2.网球鞋 \t 3.球拍"); Scanner scanner = new Scanner(System.in); System.out.println("请您输入购买物品的编号"); int choose = scanner.nextInt(); // 获取用户的选择 System.out.println("请您输入购买的数量"); int count = scanner.nextInt();// 获取用户购买的数量 // 定义一个总消费 double money = 0; switch (choose) { case 1: System.out.println("您购买的是 1.帽子 \t ¥50\t总金额:" + (count * 50)); money += (count * 50); break; case 2: System.out.println("您购买的是 2.网球鞋 \t ¥30\t总金额:" + (count * 30)); money += (count * 30); break; case 3: System.out.println("您购买的是 3.球拍 \t ¥5\t总金额:" + (count * 5)); money += (count * 5); break; } System.out.println("是否继续购物?(y/n)"); String answer = scanner.next(); while (answer.equalsIgnoreCase("y")) { // 循环购物操作 System.out.println("***************************"); System.out.println("1.帽子 \t 2.网球鞋 \t 3.球拍"); System.out.println("请您输入购买物品的编号"); choose = scanner.nextInt(); // 获取用户的选择 System.out.println("请您输入购买的数量"); count = scanner.nextInt();// 获取用户购买的数量 switch (choose) { case 1: System.out.println("您购买的是 1.帽子 \t ¥50\t总金额:" + (count * 50)); money += (count * 50); break; case 2: System.out.println("您购买的是 2.网球鞋 \t ¥30\t总金额:" + (count * 30)); money += (count * 30); break; case 3: System.out.println("您购买的是 3.球拍 \t ¥5\t总金额:" + (count * 5)); money += (count * 5); break; } System.out.println("是否继续购物?(y/n)"); answer = scanner.next(); } System.out.println("您本次消费是:" + money); System.out.println("请您输入支付金额:"); double pay = scanner.nextDouble(); while (pay < money) { // 说明金额不正确 System.out.println("金额不正确!请重新支付!"); pay = scanner.nextDouble(); } System.out.println("找零:" + (pay - money)); } }
public class DoWhileDemo01 { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); double money = 0; String answer = ""; do { // 先执行 再判断 System.out.println("欢迎进入MyShopping管理系统"); System.out.println("***************************"); System.out.println("1.帽子 \t 2.网球鞋 \t 3.球拍"); System.out.println("请您输入购买物品的编号"); int choose = scanner.nextInt(); // 获取用户的选择 System.out.println("请您输入购买的数量"); int count = scanner.nextInt();// 获取用户购买的数量 switch (choose) { case 1: System.out.println("您购买的是 1.帽子 \t ¥50\t总金额:" + (count * 50)); money += (count * 50); break; case 2: System.out.println("您购买的是 2.网球鞋 \t ¥30\t总金额:" + (count * 30)); money += (count * 30); break; case 3: System.out.println("您购买的是 3.球拍 \t ¥5\t总金额:" + (count * 5)); money += (count * 5); break; } System.out.println("是否继续购物?(y/n)"); answer = scanner.next(); } while (answer.equalsIgnoreCase("y")); System.out.println("您本次消费是:" + money); System.out.println("请您输入支付金额:"); double pay = scanner.nextDouble(); while (pay < money) { // 说明金额不正确 System.out.println("金额不正确!请重新支付!"); pay = scanner.nextDouble(); } System.out.println("找零:" + (pay - money)); } }
public class WhileDemo08 { /** * 使用do-while实现:输出摄氏温度与华氏温度的对照表, * 要求它从摄氏温度0度到250度,每隔20度为一项,对照表中的条目不超过10条。 转换关系:华氏温度 = 摄氏温度 * 9 / 5.0 + 32 循环操作:计算摄氏温度,并输出对照条目 循环条件: 条目<=10 && 摄氏温度 <= 250 */ public static void main(String[] args) { int count = 1; // 对照条目 double c = 0; // 摄氏度 double f = 0; // 华氏度 System.out.println("条目\t摄氏度\t华氏度"); do { // 转换 f = c * 9 / 5.0 + 32; System.out.println(count + "\t" + c + "\t" + f); count++; c += 20; } while (count <= 10 && c <= 250); } }
public class WhileDemo09 { /** * 实现一个数字的反转 */ public static void main(String[] args) { int num = 123456789; int temp = 1; System.out.print("反转之后的数字:"); while (num != 0) { // 依次与10取余 temp = num % 10; // 6 System.out.print(temp); num = num / 10; } } }
public class ForDemo01 { public static void main(String[] args) { /** * * for(表达式1;表达式2;表达式3) { * 循环体 * } * 表达式1:初始化变量 int a=0; * 表达式2:循环条件!满足条件执行循环体操作! * 表达式3:迭代变量! * * 三个表达式都可以省略!但是;不能省略! * * 执行顺序: * 表达式1---》表达式2---》循环体---》表达式3--->表达式2---》循环体---》表达式3 */ for (int i = 1; i <= 100; i++) { System.out.println("好好学习!" + i); } } }
public class ForDemo02 { /** * 循环输入某同学S1结业考试的5门课成绩,并计算平均分 */ public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.println("请您输入姓名:"); // 定义一个变量 来保存总成绩 double sum = 0; String name = scanner.next(); for (int i = 1; i <= 5; i++) { System.out.println("请您输入第" + i + "门课程的成绩:"); double score = scanner.nextDouble(); sum += score; // 总成绩 } System.out.println("平均分是:" + (sum / 5)); } }
public class ForDemo03 { public static void main(String[] args) { // 根据用户的输入 产生对应的加法表 Scanner scanner = new Scanner(System.in); System.out.println("请您输入一个数字:"); int num = scanner.nextInt(); for (int i = 0; i <= num; i++) { System.out.println(i + "+" + (num - i) + "=" + (num)); } } }
public class ErrorDemo04 { public static void main(String[] args) { /** * int i = 0; // 把初始化变量 局部化! for (; i <= 5; i++) { System.out.println(i); } */ /**for (;;) { // 死循环 System.out.println(1); }*/ /**for (int i = 0;; i++) { // 省略了 条件判断 System.out.println(i); } */ for (int i = 0; i < 10;) { // 省略了 条件判断迭代变量 System.out.println(i); } } }
public class ForDemo06 { // 计算年龄大于30的 占比 public static void main(String[] args) { Scanner scanner = new Scanner(System.in); // 定义年龄的变量 int age = 0; // 年龄大于30以上的人数 int count = 0; for (int i = 1; i <= 5; i++) { System.out.println("请您输入年龄:"); age = scanner.nextInt(); if (age >= 30) { count++; } } System.out.println("30岁以上的比例是:" + (count / 5.0 * 100) + "%"); System.out.println("30岁以下的比例是:" + ((1 - count / 5.0) * 100) + "%"); } }
public class ForDemo07 { public static void main(String[] args) { System.out.println("请您输入一个数字:"); Scanner scanner = new Scanner(System.in); double num = scanner.nextDouble(); DecimalFormat df = new DecimalFormat("0.00"); // 保留两位有效数字 String number = df.format(num); // 把double类型的数据 保留两位有效数字 返回String System.out.println("保留两位有效数字:" + number); System.out.println("*********************************"); NumberFormat nf = NumberFormat.getInstance(); nf.setMaximumFractionDigits(2); // 保留两位有效数字 number = nf.format(num); System.out.println("保留两位有效数字:" + number); } }
public class ForDemo08 { /** * 日期的转换 * @throws ParseException */ public static void main(String[] args) throws ParseException { Date date = new Date(); // 日期 格式 Mon Mar 06 11:02:55 CST 2017 System.out.println("日期 格式:" + date); SimpleDateFormat sdf = new SimpleDateFormat("yyyy年-MM月-dd日 hh:mm:ss"); String time = sdf.format(date); // 把日期格式 转换成 String System.out.println(time); time = "2018年-05月-05日 11:11:11"; // 把 String 转换成 日期格式 System.out.println(sdf.parse(time)); } }
public class ForDemo09 { //break 跳出当前循环结构 public static void main(String[] args) { for (int i = 1; i <= 10; i++) { System.out.println("第" + i + "圈"); if (i == 8) { System.out.println("坚持不住!!!"); break; } } System.out.println("比赛结束!"); } }
public class ForDemo10 { /** * 循环录入某学生5门课的成绩并计算平均分。 * 如果某分数录入为负,停止录入并提示录入错误 */ public static void main(String[] args) { Scanner scanner = new Scanner(System.in); // 用来保存总成绩 double sum = 0; // 标记 是否计算平均分 boolean flag = true; for (int i = 1; i <= 5; i++) { System.out.println("请您输入第" + i + "门课程的成绩:"); double score = scanner.nextDouble(); if (score < 0) { // 分数为负数 System.out.println("您的输入有误!退出系统!"); flag = false; break; } sum += score; } if (flag) { // flag==true System.out.println("平均分是:" + (sum / 5)); } } }
public class ForDemo12 { /** *循环录入Java课的学生成绩, *统计分数大于等于80分的学生比例 * *continue:代表的是:结束本次循环!继续下次的循环! 之后的代码不会执行! *跳出循环体了吗??没有跳出!代表 循环继续! * *break: 跳出当前整个循环体! * *return: 跳出当前方法,可以带有返回值! */ public static void main(String[] args) { Scanner scanner = new Scanner(System.in); // 定义变量 保存分数大于80的人数 int sum = 0; System.out.println("请输入班级的人数:"); int count = scanner.nextInt(); for (int i = 1; i <= count; i++) { System.out.println("请输入第" + i + "名同学的成绩:"); double score = scanner.nextDouble(); if (score < 80) { continue; } sum++; return; } System.out.println("80分以上的人数:" + sum); System.out.println("80分以上的人数占比:" + (sum * 1.0 / count) * 100 + "%"); } }
public class ForDemo13 { /** *验证用户登录 失败次数 */ public static void main(String[] args) { Scanner scanner = new Scanner(System.in); String name; // 用户名 String password; // 密码 int i;// 记录用户失败的次数 // 进行三次循环操作 for (i = 0; i < 3; i++) { System.out.println("请输入用户名:"); name = scanner.next(); System.out.println("请输入密码:"); password = scanner.next(); // 判断用户名和密码是否正确 if ("admin".equals(name) && "admin".equals(password)) { System.out.println("登录成功!"); break; } else { System.out.println("输入错误!您还有" + (2 - i) + "次机会!"); } } if (i == 3) { // 3次输入都不对 System.out.println("对不起!您三次都输入错误!"); } } }
// 三种循环 来实现 100以内的偶数和 public static void main(String[] args) { // 01.使用while循环 int num = 0; int sum = 0; // 求和 while (num <= 100) { // 找到偶数并相加 if (num % 2 == 0) { sum += num; // sum=sum+num?? } num++; } System.out.println("while偶数和是:" + sum); // 02.使用do while sum = 0; num = 0; do { if (num % 2 == 0) { // 找到偶数 sum += num; } num++; } while (num <= 100); System.out.println("dowhile偶数和是:" + sum); // 03.使用for sum = 0; for (int i = 0; i <= 100; i++) { if (i % 2 == 0) { sum += i; } } System.out.println("for偶数和是:" + sum); }
// a+=b a=a+b 是一致的吗? int a = 5; double b = 5; // a =a + b; a += b; // 做了强制类型转换 (int) (a + b) 不会编译报错 System.out.println(a);