• 程序流程控制


    • 流程控制语句是用来控制程序中各语句执行顺序的语句,可以把语句组合成能完成一定功能的小逻辑模块。
    • 其流程控制方式采用结构化程序设计中规定的三种基本流程结构,即:

    1. 顺序结构(根据编写的顺序,从上到下运行)
    2. 分支结构(if / else、switch-case)
    3. 循环结构(while、do / while、for、foreach)

    分支结构 (if / else、switch-case)

    • 有三种分支结构
    1. if
    2. if / else
    3. if  /  else if  / else if  /  else

     if / else练习题

    1、由键盘输入三个整数分别存入num1、num2、num3、对它们进行排序,并且从小到大输出。

    1. public class IfTest {
    2. public static void main(String[] args) {
    3. Scanner scanner = new Scanner(System.in);
    4. int num1 = scanner.nextInt();
    5. int num2 = scanner.nextInt();
    6. int num3 = scanner.nextInt();
    7. if (num1 >= num2) {
    8. if (num3 >= num1) {
    9. System.out.println(num2 + "," + num1 + "," + num3);
    10. } else if (num3 <= num2) {
    11. System.out.println(num3 + "," + num2 + "," + num1);
    12. } else {
    13. System.out.println(num2 + "," + num3 + "," + num1);
    14. }
    15. } else {
    16. if (num3 >= num2) {
    17. System.out.println(num1 + "," + num2 + "," + num3);
    18. } else if (num3 <= num1) {
    19. System.out.println(num3 + "," + num1 + "," + num2);
    20. } else {
    21. System.out.println(num1 + "," + num3 + "," + num2);
    22. }
    23. }
    24. }
    25. }

    2、测算狗的年龄

    • 狗的前 2年 每一年 相当于人类的10.5岁,之后每增加一年就增加4岁。
    1. public class IfTest {
    2. public static void main(String[] args) {
    3. int dogAge = 6;
    4. if (dogAge >= 0 && dogAge <= 2) {
    5. System.out.println("相当于人的年龄:" + dogAge * 10.5);
    6. } else if (dogAge > 2) {
    7. System.out.println("相当于人的年龄:" + (2 * 10.5 + (dogAge - 2) * 4));
    8. } else {
    9. System.out.println("狗狗没有出生");
    10. }
    11. }
    12. }

    3、彩票问题

    假设你想开发一个玩彩票的游戏,程序随机地产生一个两位数的彩票,提示用户输入一个两位数,然后按照下面的规则判定用户是否能赢。

    • 如果用户输入的数匹配彩票的实际顺序,奖金10000美元。                                         ==  赋值号
    • 如果用户输入的所有数字匹配彩票的所有数字,但顺序不一样,奖金3000美元。       && 短路与
    • 如果用户输入的一个数字仅满足顺序情况下匹配彩票的一个数字,奖金1000美元。    ||    短路或
    • 如果用户输入的一个数字仅满足非顺序情况下匹配彩票的一个数字,奖金500美元。   ||   短路或
    • 如果用户输入的数字没有匹配任何一个数字,则彩票作废。
    1. public class IfTest {
    2. public static void main(String[] args) {
    3. System.out.println(Math.random());
    4. int number = (int) (Math.random() * 90 + 10);
    5. System.out.println(number);
    6. int numberShi = number / 10;
    7. int numberGe = number % 10;
    8. Scanner input = new Scanner(System.in);
    9. System.out.println("请输入一个两位数:");
    10. int guess = input.nextInt();
    11. int guessShi = guess / 10;
    12. int guessGe = guess % 10;
    13. if (number == guess) {
    14. System.out.println("奖金10000美元");
    15. } else if (numberShi == guessGe && numberGe == guessShi) {
    16. System.out.println("奖金3000美元");
    17. } else if (numberShi == guessShi || numberGe == guessGe) {
    18. System.out.println("奖金1000美元");
    19. } else if (numberShi == guessGe || numberGe == guessShi) {
    20. System.out.println("奖金500美元");
    21. } else {
    22. System.out.println("没中奖");
    23. }
    24. System.out.println("中奖号码是:" + number);
    25. }
    26. }

    switch-case练习题 

    • 凡是可以使用switch-case的结构,都可以转换为 if-else。反之,不成立。

    1、使用switch把小写类型的char型转换为大小写。只转换a、b、c、d、e其它的输出 ” other “ 。

    1. public class SwitchTest {
    2. public static void main(String[] args) {
    3. Scanner scanner = new Scanner(System.in);
    4. String word = scanner.next();
    5. char c = word.charAt(0);
    6. switch (c) {
    7. case 'a':
    8. System.out.println('A');
    9. break;
    10. case 'b':
    11. System.out.println('B');
    12. break;
    13. case 'c':
    14. System.out.println('C');
    15. break;
    16. case 'd':
    17. System.out.println('D');
    18. break;
    19. default:
    20. System.out.println("other");
    21. break;
    22. }
    23. }
    24. }

    2、对学生成绩大于60分 的输出合格,低于60分的输出不合格。

    1. public class SwitchCaseTest {
    2. public static void main(String[] args) {
    3. int score = 78;
    4. switch (score / 60) {
    5. case 0:
    6. System.out.println("不及格");
    7. break;
    8. case 1:
    9. System.out.println("及格");
    10. break;
    11. }
    12. }
    13. }

    for循环练习题

     1、遍历100以内的偶数,输出所有偶数的和,输出偶数的个数

    1. public class ForTest {
    2. public static void main(String[] args) {
    3. int sum = 0;
    4. int count = 0;
    5. for (int i = 1; i <= 100; i++) {
    6. if (i % 2 == 0) {
    7. System.out.println(i);
    8. sum += i;
    9. count++;
    10. }
    11. }
    12. System.out.println("总数为:" + sum);
    13. System.out.println("个数为:" + count);
    14. }
    15. }

    2、   编写程序从1循环到150,并在每行打印一个值,另一个在每个 3 的倍数行上打印出  foo,在每个 5 的倍数行上打印 biz,在每个7 的倍数行行上打印输出 baz。

    1. public class ForTest {
    2. public static void main(String[] args) {
    3. for (int i = 1; i <= 150; i++) {
    4. System.out.print(i + " ");
    5. if (i % 3 == 0) {
    6. System.out.print("foo ");
    7. }
    8. if (i % 5 == 0) {
    9. System.out.print("biz ");
    10. }
    11. if (i % 7 == 0) {
    12. System.out.print("baz ");
    13. }
    14. System.out.println();
    15. }
    16. }
    17. }

  • 相关阅读:
    内网-2(代理)
    第2-4-4章 规则引擎Drools规则属性-业务规则管理系统-组件化-中台
    关于token续签
    排序算法(一)
    postgis版本升级
    a标签的下载
    kubeadm重新拉取集群的方式
    鸿蒙应用开发之数据管理
    面试题:Kafka 为什么会丢消息?
    Oh my zsh
  • 原文地址:https://blog.csdn.net/m0_65152767/article/details/131957643