- 流程控制语句是用来控制程序中各语句执行顺序的语句,可以把语句组合成能完成一定功能的小逻辑模块。
- 其流程控制方式采用结构化程序设计中规定的三种基本流程结构,即:
- 顺序结构(根据编写的顺序,从上到下运行)
- 分支结构(if / else、switch-case)
- 循环结构(while、do / while、for、foreach)
分支结构 (if / else、switch-case)
- 有三种分支结构
- if
- if / else
- if / else if / else if / else
if / else练习题
1、由键盘输入三个整数分别存入num1、num2、num3、对它们进行排序,并且从小到大输出。
public class IfTest { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int num1 = scanner.nextInt(); int num2 = scanner.nextInt(); int num3 = scanner.nextInt(); if (num1 >= num2) { if (num3 >= num1) { System.out.println(num2 + "," + num1 + "," + num3); } else if (num3 <= num2) { System.out.println(num3 + "," + num2 + "," + num1); } else { System.out.println(num2 + "," + num3 + "," + num1); } } else { if (num3 >= num2) { System.out.println(num1 + "," + num2 + "," + num3); } else if (num3 <= num1) { System.out.println(num3 + "," + num1 + "," + num2); } else { System.out.println(num1 + "," + num3 + "," + num2); } } } }2、测算狗的年龄
- 狗的前 2年 每一年 相当于人类的10.5岁,之后每增加一年就增加4岁。
public class IfTest { public static void main(String[] args) { int dogAge = 6; if (dogAge >= 0 && dogAge <= 2) { System.out.println("相当于人的年龄:" + dogAge * 10.5); } else if (dogAge > 2) { System.out.println("相当于人的年龄:" + (2 * 10.5 + (dogAge - 2) * 4)); } else { System.out.println("狗狗没有出生"); } } }3、彩票问题
假设你想开发一个玩彩票的游戏,程序随机地产生一个两位数的彩票,提示用户输入一个两位数,然后按照下面的规则判定用户是否能赢。
- 如果用户输入的数匹配彩票的实际顺序,奖金10000美元。 == 赋值号
- 如果用户输入的所有数字匹配彩票的所有数字,但顺序不一样,奖金3000美元。 && 短路与
- 如果用户输入的一个数字仅满足顺序情况下匹配彩票的一个数字,奖金1000美元。 || 短路或
- 如果用户输入的一个数字仅满足非顺序情况下匹配彩票的一个数字,奖金500美元。 || 短路或
- 如果用户输入的数字没有匹配任何一个数字,则彩票作废。
public class IfTest { public static void main(String[] args) { System.out.println(Math.random()); int number = (int) (Math.random() * 90 + 10); System.out.println(number); int numberShi = number / 10; int numberGe = number % 10; Scanner input = new Scanner(System.in); System.out.println("请输入一个两位数:"); int guess = input.nextInt(); int guessShi = guess / 10; int guessGe = guess % 10; if (number == guess) { System.out.println("奖金10000美元"); } else if (numberShi == guessGe && numberGe == guessShi) { System.out.println("奖金3000美元"); } else if (numberShi == guessShi || numberGe == guessGe) { System.out.println("奖金1000美元"); } else if (numberShi == guessGe || numberGe == guessShi) { System.out.println("奖金500美元"); } else { System.out.println("没中奖"); } System.out.println("中奖号码是:" + number); } }
switch-case练习题
- 凡是可以使用switch-case的结构,都可以转换为 if-else。反之,不成立。
1、使用switch把小写类型的char型转换为大小写。只转换a、b、c、d、e其它的输出 ” other “ 。
public class SwitchTest { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); String word = scanner.next(); char c = word.charAt(0); switch (c) { case 'a': System.out.println('A'); break; case 'b': System.out.println('B'); break; case 'c': System.out.println('C'); break; case 'd': System.out.println('D'); break; default: System.out.println("other"); break; } } }2、对学生成绩大于60分 的输出合格,低于60分的输出不合格。
public class SwitchCaseTest { public static void main(String[] args) { int score = 78; switch (score / 60) { case 0: System.out.println("不及格"); break; case 1: System.out.println("及格"); break; } } }
for循环练习题
1、遍历100以内的偶数,输出所有偶数的和,输出偶数的个数
public class ForTest { public static void main(String[] args) { int sum = 0; int count = 0; for (int i = 1; i <= 100; i++) { if (i % 2 == 0) { System.out.println(i); sum += i; count++; } } System.out.println("总数为:" + sum); System.out.println("个数为:" + count); } }2、 编写程序从1循环到150,并在每行打印一个值,另一个在每个 3 的倍数行上打印出 foo,在每个 5 的倍数行上打印 biz,在每个7 的倍数行行上打印输出 baz。
public class ForTest { public static void main(String[] args) { for (int i = 1; i <= 150; i++) { System.out.print(i + " "); if (i % 3 == 0) { System.out.print("foo "); } if (i % 5 == 0) { System.out.print("biz "); } if (i % 7 == 0) { System.out.print("baz "); } System.out.println(); } } }