程序流程控制

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

  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、对它们进行排序,并且从小到大输出。

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。

程序流程控制_第1张图片

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();
        }
    }
}

你可能感兴趣的:(#,程序流程控制,java)