第三章、程序设计结构

495 阅读3分钟

1、分类

  1. 顺序控制:程序从上到下顺序执行,没有跳转和判断逻辑
  2. 分支控制:让程序有选择的执行
  3. 循环控制:让你的代码可以循环的执行

2、顺序控制

就是正常的代码逻辑。

3、分支控制

3.1 if分支

分为:if单分支、if-else双分支、if-else if...-else多分支、嵌套分支。

题目:判断一个年份是否是闰年,闰年的条件是符合下面二者之一:

​ (1)年份能被 4 整除,但不能被 100 整除;

​ (2)能被 400 整除

public static void main(String[] args) {
    int year = 2100;
    System.out.println(isRunNian(year) ? year + "是闰年" : year + "不是闰年");
}

public static boolean isRunNian(int year){
    if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0){
        return true;
    }else{
        return false;
    }
}

题目:下面这个输出什么?

public static void main(String[] args) {
    boolean b = true;
    if (b == false){	//这里输出b,如果把 b==false 改成 b=false 输出c
        System.out.println("a");
    }else if (b){
        System.out.println("b");
    }else if (!b){
        System.out.println("c");
    }else{
        System.out.println("d");
    }
}

题目:参加歌手比赛,如果初赛成绩大于 8.0 进入决赛,否则提示淘汰。并且根据性别提示进入男子组或女子组, 输入成绩和性别,进行判断和输出信息。

public static void main(String[] args) {
    Scanner scanner = new Scanner(System.in);
    System.out.println("请输出选手的成绩");
    double score = scanner.nextDouble();
    if (score >= 8.0) {
        System.out.println("请输出选手的性别");
        char gender = scanner.next().charAt(0);
        if (gender == '男'){
            System.out.println("进入男子组");
        }else if (gender == '女'){
            System.out.println("进入女子组");
        }else {
            System.out.println("性别输入有误");
        }
    }else{
        System.out.println("你好,成绩不合格,你被淘汰了");
    }
}

3.2 switch分支

语法:

image-20211024224530547

流程图如下:

image-20211024224636152

如果case语句种没有break,那么就继续执行下一个case中的语句,这个叫做穿透

switch(表达式),表达式的返回值必须是byte、short、int、char、enums,String类型。

switch和if语句的区别?

  • 如果判断的具体数值不多,而且符合 byte、 short 、int、 char, enum[枚举], String 这 6 种类型。虽然两个语句都可以使用,建议使用 swtich 语句。
  • 其他情况:对区间判断,对结果为 boolean 类型判断,使用 if,if 的使用范围更广。

4、循环控制

4.1 for循环

语法:

image-20211024225057183

细节:

  • for(;循环判断条件;) 中的初始化和变量迭代可以写到其它地方,但是两边的分号不能省略。
  • 循环初始值可以有多条初始化语句,但要求类型一样,并且中间用逗号隔开,循环变量迭代也可以有多条变量迭代语句,中间用逗号隔开。

4.2 while循环

语法:

image-20211024225300594

4.3 dowhile循环

语法:

循环变量初始化; 
do{ 
    循环体(语句); 
    循环变量迭代; 
}while(循环条件);

先执行一次再判断,固定至少执行一次

上面这些循环可以嵌套执行。

4.4 跳转控制(break、continue)

  • continue语句用于结束本次循环,继续执行下一次循环
  • continue 语句出现在多层嵌套的循环语句体中时,可以通过标签指明要跳过的是哪一层循环 , 这个和前面的标签的使用的规则一样.
  • break 语句用于终止某个语句块的执行,一般使用在 switch 或者循环[for , while , do-while]中