07-控制结构

马铃薯1 / 2023-07-10 / 原文

程序流程控制介绍

在程序中,程序运行的流程控制决定程序是如何运行的。

主要有三大流程控制语句:顺序控制、分支控制和循环控制。

1. 顺序控制

程序从上到下,逐行地执行,中间没有任何判断和跳转。

2. 分支控制(if , else , switch)

分支控制 if-else

让程序有选择的执行,分支控制有三种:单分支、双分支和多分支。

a) 单分支

基本语法:

if(条件表达式){

  执行代码块;  //(可以有多条语句)

}

说明:当条件表达式为true时,就会执行{}里面的代码;如果为false,则不执行。

这里需要特别注意:如果{}里面只有一条语句,则可以不用{},但建议加上{}。

//需求:编写一个程序,可以输入年龄,如果该同志的年龄大于18岁,则输出"你年龄大于18,要对自己的行为负责,送入监狱!"
import java.util.Scanner;

public class If01{
    public static void main(String[] args){
        //思路分析
        //1.定义一个Scanner对象,接收输入的年龄
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入年龄:");

        //2.把年龄保存到一个变量 int age
        int age = sc.nextInt();
        
        //3.使用 if 判断,是否输出对应信息
        if(age > 18){
            System.out.println("你年龄大于18,要对自己的行为负责,送入监狱!");
        }

        System.out.println("程序继续...");
    }
}

b) 双分支

基本语法:

if(条件表达式){

  执行代码块1;  

}

else{

  执行代码块2;  

}

说明:当条件表达式成立时,即执行代码块1,否则执行代码块2。

//需求:编写一个程序,可以输入年龄,如果该同志的年龄大于18岁,则输出"你年龄大于18,要对自己的行为负责,送入监狱!"
//否则,输出"你的年龄不大,这次放过你了!"

import java.util.Scanner;

public class If02{
    public static void main(String[] args){
        //思路分析
        //1.定义一个Scanner对象,接收输入的年龄
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入年龄:");

        //2.把年龄保存到一个变量 int age
        int age = sc.nextInt();
        
        //3.使用 if-else 判断,是否输出对应信息
        if(age > 18){
            System.out.println("你年龄大于18,要对自己的行为负责,送入监狱!");
        }
        else{
            System.out.println("你年龄不大,这次放过你了!");
        }

        System.out.println("程序继续...");
    }
}

c) 多分支

基本语法:

if(条件表达式1){

  执行代码块1;  

}

else if(条件表达式2){

  执行代码块2;  

}

...

else{

  执行代码块n;

}

说明:当条件表达式1成立时,即执行代码块1;如果条件表达式1不成立时,才去判断表达式2是否成立,如果条件表达式2成立时,就执行代码块2;以此类推,如果所有的表达式都不成立时,则执行else代码块。

//需求:从键盘输入保国同志的芝麻信用分:
//1. 信用分为100分时,输出"信用极好"
//2. 信用分为(80.99]时,输出"信用优秀"
//3. 信用分为[60.80]时,输出"信用一般"
//4. 其它情况,输出"信用不及格"

import java.util.Scanner;

public class If03{
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入保国同志的芝麻信誉分:");

        //假定芝麻信誉分为 int 整数类型
        int score = sc.nextInt();

        //嵌套分支,先对输入的信用分,进行一个范围的有效判断1-100,否则提示输入错误
        if(score >=1 && score <= 100){
            //因为有4种情况,所以使用多分支
            if(score == 100){
                System.out.println("信用极好");
            }else if(score > 80 && score <= 99){
                System.out.println("信用优秀");
            }else if(score >= 60 && score <= 80){
                System.out.println("信用一般");
            }else{
                System.out.println("信用不及格");
            }
        }else{
            System.out.println("输入错误,信用分需要在1-100之间");
        }
    }
}