选择结构

选择结构

基本概念

选择结构是程序中的条件判断语句,根据条件的真假选择不同的执行路径,有点类似于电路图中的开关,可以根据不同的条件执行不同的代码,进而帮助我们让代码在不同情况下进行不同的功能。比如说,如果我要写一个自动抢课脚本,这个脚本的大致思路就可以描述为,不断地判断需要抢的课是否已经开放抢课,然后:

  • 如果这节课已经开放抢课,就执行抢课的操作;

  • 如果这节课还没有开放抢课,就等待一段时间,然后再次判断是否开放抢课。

在这个例子中,我们通过判断条件“需要抢的课已经开放抢课”这个命题的真假来决定接下来要执行的操作,这就是一种典型的选择结构。

C++

C++ 中提供了三种选择结构,分别是:

  • if 分支语句系列
  • switch 分支语句
  • 三目运算符

但是,switch 和三目运算符的功能其实都可以用 if 分支语句来实现,所以我们只介绍 if 分支语句。感兴趣的话,您可以自行了解 switch 和三目运算符的用法。

C++ 简单 if 分支语句

在C++中,if 分支语句的语法如下:

if (条件) {
    // 如果条件为真,执行这里的代码
}

例如:

int a = 10;
if (a > 5) {
    cout << "a 大于 5" << endl;
}

在这个例子中,我们定义了一个变量 a,然后使用 if 分支语句判断 a 是否大于 5。如果 a 大于 5,就会输出 a is greater than 5

C++ if-else 分支语句

在C++中,if-else 分支语句的语法如下:

if (条件) {
    // 如果条件为真,执行这里的代码
} else {
    // 如果条件为假,执行这里的代码
}

例如:

int a = 10;
if (a > 5) {
    cout << "a 大于 5" << endl;
} else {
    cout << "a 小于等于 5" << endl;
}

在这个例子中,我们定义了一个变量 a,然后使用 if-else 分支语句判断 a 是否大于 5。如果 a 大于 5,就会输出 a 大于 5;否则,就会输出 a 小于等于 5

C++ if-else if-else 分支语句

在C++中,if-else if-else 分支语句的语法如下:

if (条件1) {
    // 如果条件1为真,执行这里的代码
} else if (条件2) {
    // 如果条件1为假,条件2为真,执行这里的代码
} else {
    // 如果条件1和条件2都为假,执行这里的代码
}   

例如:

int a = 10;
if (a > 5) {
    cout << "a 大于 5" << endl;
} else if(a==5){
    cout << "a 等于 5" << endl;
}else{
    cout << "a 小于 5" << endl;
}

在这个例子中,我们定义了一个变量 a,然后使用 if-else if-else 分支语句判断 a 是否大于 5。如果 a 大于 5,就会输出 a 大于 5;否则,如果 a 等于 5,就会输出 a 等于 5;如果前面的条件都不满足,则说明 a 小于 5,此时直接输出 a 小于 5 即可。

此外,else if 这一项其实是可以反复使用多次的,比如:

if (条件1) {
    // 如果条件1为真,执行这里的代码
} else if (条件2) {
    // 如果条件1为假,条件2为真,执行这里的代码
}  else if (条件3) {
    // 如果条件1,2为假,条件3为真,执行这里的代码
}  else if (条件4) {
    // 如果条件1,2,3为假,条件4为真,执行这里的代码
} else {
    // 如果条件1,2,3,4都为假,执行这里的代码
}   

Java

Java 中提供了三种选择结构,分别是:

  • if 分支语句系列
  • switch 分支语句
  • 三目运算符

但是,switch 和三目运算符的功能其实都可以用 if 分支语句来实现,所以我们主要介绍 if 分支语句。感兴趣的话,您可以自行了解 switch 和三目运算符的用法。

Java 简单 if 分支语句

在Java中,if 分支语句的语法如下:

if (条件) {
    // 如果条件为真,执行这里的代码
}

例如:

int a = 10;
if (a > 5) {
    System.out.println("a 大于 5");
}

在这个例子中,我们定义了一个变量 a,然后使用 if 分支语句判断 a 是否大于 5。如果 a 大于 5,就会输出 a 大于 5

Java if-else 分支语句

在Java中,if-else 分支语句的语法如下:

if (条件) {
    // 如果条件为真,执行这里的代码
} else {
    // 如果条件为假,执行这里的代码
}

例如:

int a = 10;
if (a > 5) {
    System.out.println("a 大于 5");
} else {
    System.out.println("a 小于等于 5");
}

在这个例子中,我们定义了一个变量 a,然后使用 if-else 分支语句判断 a 是否大于 5。如果 a 大于 5,就会输出 a 大于 5;否则,就会输出 a 小于等于 5

Java if-else if-else 分支语句

在 Java 中,if-else if-else 分支语句的语法如下:

if (条件1) {
    // 如果条件1为真,执行这里的代码
} else if (条件2) {
    // 如果条件1为假,条件2为真,执行这里的代码
} else {
    // 如果条件1和条件2都为假,执行这里的代码
}   

例如:

int a = 10;
if (a > 5) {
    System.out.println("a 大于 5");
} else if (a == 5) {
    System.out.println("a 等于 5");
} else {
    System.out.println("a 小于 5");
}

在这个例子中,我们定义了一个变量 a,然后使用 if-else if-else 分支语句判断 a 是否大于 5。如果 a 大于 5,就会输出 a 大于 5;否则,如果 a 等于 5,就会输出 a 等于 5;如果前面的条件都不满足,则说明 a 小于 5,此时直接输出 a 小于 5 即可。

此外,else if 这一项其实是可以反复使用多次的,比如:

if (条件1) {
    // 如果条件1为真,执行这里的代码
} else if (条件2) {
    // 如果条件1为假,条件2为真,执行这里的代码
}  else if (条件3) {
    // 如果条件1,2为假,条件3为真,执行这里的代码
}  else if (条件4) {
    // 如果条件1,2,3为假,条件4为真,执行这里的代码
} else {
    // 如果条件1,2,3,4都为假,执行这里的代码
}   

Python

Python 中提供了两种选择结构,分别是:

  • if 分支语句系列
  • 三目运算符(条件表达式) 但是,三目运算符的功能其实可以用 if 分支语句来实现,所以我们主要介绍 if 分支语句。感兴趣的话,您可以自行了解三目运算符的用法。

Python 简单 if 分支语句

在Python中,if 分支语句的语法如下:

if 条件:    # 如果条件为真,执行这里的代码

例如:

a = 10
if a > 5:
    print("a 大于 5")

在这个例子中,我们定义了一个变量 a,然后使用 if 分支语句判断 a 是否大于 5。如果 a 大于 5,就会输出 a 大于 5

需要特别注意的是,Python 使用缩进来表示代码块,而不是像 C++ 和 Java 那样使用大括号。缩进通常是 4 个空格,但只要保持一致即可。

Python if-else 分支语句

在Python中,if-else 分支语句的语法如下:

if 条件:
    # 如果条件为真,执行这里的代码
else:
    # 如果条件为假,执行这里的代码

例如:

a = 10
if a > 5:
    print("a 大于 5")
else:
    print("a 小于等于 5")

在这个例子中,我们定义了一个变量 a,然后使用 if-else 分支语句判断 a 是否大于 5。如果 a 大于 5,就会输出 a 大于 5;否则,就会输出 a 小于等于 5

Python if-elif-else 分支语句

在Python中,if-elif-else 分支语句的语法如下(注意Python使用elif而不是else if):

if 条件1:
    # 如果条件1为真,执行这里的代码
elif 条件2:
    # 如果条件1为假,条件2为真,执行这里的代码
else:
    # 如果条件1和条件2都为假,执行这里的代码

例如:

a = 10
if a > 5:
    print("a 大于 5")
elif a == 5:
    print("a 等于 5")
else:
    print("a 小于 5")

在这个例子中,我们定义了一个变量 a,然后使用 if-elif-else 分支语句判断 a 是否大于 5。如果 a 大于 5,就会输出 a 大于 5;否则,如果 a 等于 5,就会输出 a 等于 5;如果前面的条件都不满足,则说明 a 小于 5,此时直接输出 a 小于 5 即可。

此外,elif 这一项其实是可以反复使用多次的,比如:

if 条件1:
    # 如果条件1为真,执行这里的代码
elif 条件2:
    # 如果条件1为假,条件2为真,执行这里的代码
elif 条件3:
    # 如果条件1,2为假,条件3为真,执行这里的代码
elif 条件4:
    # 如果条件1,2,3为假,条件4为真,执行这里的代码
else:
    # 如果条件1,2,3,4都为假,执行这里的代码

例题

例题 1:明天星期几?

题意

给定今天是星期几(用1-7表示周一到周日),请输出明天是星期几。

思路分析

这是一个典型的需要使用选择结构的问题。我们需要根据今天是星期几,来判断明天是星期几。具体来说:

  • 如果今天是星期一到星期六(1-6),那么明天就是今天的下一天,即今天的数字加1。
  • 如果今天是星期日(7),那么明天就是星期一(1)。

这个问题可以用if-else语句来解决,我们判断输入的数字是否为7,如果是7,则输出1;否则,输出输入的数字加1。

代码实现

#include <bits/stdc++.h>
using namespace std;
int main(){
    int day;  // 定义变量day表示今天是星期几
    cin >> day;  // 输入今天是星期几
    
    if (day == 7) {  // 如果今天是星期日
        cout << 1;  // 明天是星期一
    } else {  // 如果今天不是星期日
        cout << day + 1;  // 明天是今天的下一天
    }
    
    return 0;  // 结束程序
}
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int day = scanner.nextInt();  // 定义变量day表示今天是星期几
        
        if (day == 7) {  // 如果今天是星期日
            System.out.print(1);  // 明天是星期一
        } else {  // 如果今天不是星期日
            System.out.print(day + 1);  // 明天是今天的下一天
        }
        
        scanner.close();
    }
}
day = int(input())  # 定义变量day表示今天是星期几

if day == 7:  # 如果今天是星期日
    print(1, end="")  # 明天是星期一
else:  # 如果今天不是星期日
    print(day + 1, end="")  # 明天是今天的下一天

例题 2:判断闰年

题意

给定一个整数年份 ),判断这一年是否是闰年。如果是闰年,输出 yes,否则输出 no

思路分析

这是一个典型的需要使用选择结构的问题。我们需要根据年份是否为闰年来决定输出内容。

根据闰年的判断规则:

  1. 能被4整除但不能被100整除的年份是闰年
  2. 能被400整除的年份是闰年

用数学语言表达就是:

  • 如果年份能被4整除但不能被100整除,则是闰年
  • 或者,如果年份能被400整除,则是闰年

这个问题可以用if-else语句来解决,我们需要判断输入的年份是否满足上述条件之一。

代码实现

#include <bits/stdc++.h>
using namespace std;
int main(){
    int year;  // 定义变量year表示输入的年份
    cin >> year;  // 输入年份
    
    if ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0)) {  // 判断是否为闰年
        cout << "yes";  // 如果是闰年,输出yes
    } else {
        cout << "no";  // 如果不是闰年,输出no
    }
    
    return 0;  // 结束程序
}
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int year = scanner.nextInt();  // 定义变量year表示输入的年份
        
        if ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0)) {  // 判断是否为闰年
            System.out.print("yes");  // 如果是闰年,输出yes
        } else {
            System.out.print("no");  // 如果不是闰年,输出no
        }
        
        scanner.close();
    }
}
year = int(input())  # 定义变量year表示输入的年份

if (year % 4 == 0 and year % 100 != 0) or (year % 400 == 0):  # 判断是否为闰年
    print("yes", end="")  # 如果是闰年,输出yes
else:
    print("no", end="")  # 如果不是闰年,输出no

例题 3:比大小

题意

给定两个整数 ),比较它们的大小关系,并输出相应的符号:若 ,输出 <;若 ,输出 =;若 ,输出 >

思路分析

这是一个典型的需要使用选择结构的问题。我们需要根据两个整数a和b的大小关系,来决定输出什么符号。具体来说:

  • 如果a小于b,输出"<"
  • 如果a等于b,输出"="
  • 如果a大于b,输出">"

这个问题可以用if-else if-else语句来解决,我们需要判断a和b的大小关系,然后根据不同的情况输出不同的符号。

代码实现

#include <bits/stdc++.h>
using namespace std;
int main(){
    int a, b;  // 定义变量a和b
    cin >> a >> b;  // 输入a和b
    
    if (a < b) {  // 如果a小于b
        cout << "<";  // 输出"<"
    } else if (a == b) {  // 如果a等于b
        cout << "=";  // 输出"="
    } else {  // 如果a大于b
        cout << ">";  // 输出">"
    }
    
    return 0;  // 结束程序
}
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int a = scanner.nextInt();  // 定义变量a并输入
        int b = scanner.nextInt();  // 定义变量b并输入
        
        if (a < b) {  // 如果a小于b
            System.out.print("<");  // 输出"<"
        } else if (a == b) {  // 如果a等于b
            System.out.print("=");  // 输出"="
        } else {  // 如果a大于b
            System.out.print(">");  // 输出">"
        }
        
        scanner.close();
    }
}
a, b = map(int, input().split())  # 输入a和b

if a < b:  # 如果a小于b
    print("<", end="")  # 输出"<"
elif a == b:  # 如果a等于b
    print("=", end="")  # 输出"="
else:  # 如果a大于b
    print(">", end="")  # 输出">"

课后习题

习题1:卡拉兹函数

习题2:牛妹数

习题3:小乐乐是否被叫家长

习题4:最大最小值

习题5:四季

牛客代码笔记-牛栋 文章被收录于专栏

汗牛充栋,学海无涯。<br/> 内含算法知识点讲解,以及牛客题库精选例题。<br/> 学习算法,从牛栋开始。

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务