C++重新入门-C++判断语句

目录

1.if语句

嵌套 if 语句

2.switch语句

工作原理

语法

示例

3.三元运算符

示例

注意事项


判断结构要求程序员指定一个或多个要评估或测试的条件,以及条件为真时要执行的语句(必需的)和条件为假时要执行的语句(可选的)。

下面是大多数编程语言中典型的判断结构的一般形式:

1.if语句

 if 语句用于根据条件的真假执行不同的代码块。其语法如下:

if (condition) {
    // 在条件为真时执行的代码块
} else {
    // 在条件为假时执行的代码块
}
  • condition 是一个表达式,当其值为真(非零)时执行 if 代码块,否则执行 else 代码块(如果有的话)。
  • 如果 else 代码块被省略,则在条件为假时不执行任何代码。

 示例:

int x = 10;

if (x > 5) {
    cout << "x is greater than 5" << endl;
} else {
    cout << "x is not greater than 5" << endl;
}

除了单个 if 语句外,还可以使用多个 if 语句来实现多重条件判断。也可以使用 else if 来检查多个条件,这样可以避免每个条件都被检查一遍,提高效率。

假设有一个问题,我们需要根据成绩判断学生的等级,并且按照顺序判断,A 为优秀(90-100),B 为良好(80-89),C 为及格(60-79),D 为不及格(0-59)。

如果我们使用多个 if 语句:

int score = 85;

if (score >= 90) {
    cout << "A - Excellent" << endl;
}
if (score >= 80 && score < 90) {
    cout << "B - Good" << endl;
}
if (score >= 60 && score < 80) {
    cout << "C - Passed" << endl;
}
if (score < 60) {
    cout << "D - Fail" << endl;
}

 在这种情况下,即使学生得到了 95 分,仍然会被检查其他的条件(80-89 和 60-79),这样增加了不必要的计算。

但是如果使用 else if

int score = 95;

if (score >= 90) {
    cout << "A - Excellent" << endl;
} else if (score >= 80) {
    cout << "B - Good" << endl;
} else if (score >= 60) {
    cout << "C - Passed" << endl;
} else {
    cout << "D - Fail" << endl;
}

当学生得到了 95 分时,首先检查第一个条件(90-100),因为满足条件,所以输出 "A - Excellent",然后跳出判断,不再执行后续的条件判断。这样能够提高程序的效率。

因此,使用 else if 可以在一定程度上提高程序的效率,避免不必要的条件检查。

嵌套 if 语句

可以在一个 ifelse 代码块内部嵌套另一个 if 语句,形成嵌套条件判断。

int x = 10;
int y = 20;

if (x == 10) {
    if (y == 20) {
        cout << "Both x and y are equal to 10 and 20 respectively" << endl;
    }
}

2.switch语句

 switch 语句是一种用于处理多个不同情况的控制流语句。它允许基于一个表达式的值,从多个可能的情况中选择一个执行。

switch (expression) {
    case value1:
        // 当 expression 等于 value1 时执行的代码
        break;
    case value2:
        // 当 expression 等于 value2 时执行的代码
        break;
    // 更多的 case 语句
    default:
        // 当 expression 不等于任何一个 case 时执行的代码
}
  • expression 是一个表达式,其值将与 case 子句中的值进行比较。
  • case 子句中的值必须是常量表达式(整数、字符、枚举等),不能是变量或其他非常量。
  • break 关键字用于退出 switch 语句。如果省略 break,则程序将会继续执行下一个 case 子句,直到遇到 breakswitch 结束。
  • default 是可选的,用于处理 expression 不等于任何一个 case 值时的情况。它类似于 else 语句,是可选的默认情况。

 

工作原理

switch 语句的工作方式是,它首先计算 expression 的值,然后在 case 子句中逐一与其比较,直到找到匹配的值或者执行到 default 子句。

一旦匹配到一个 case 子句,将会执行对应的代码块,并且跳出 switch 语句(除非没有 break 语句,这时会继续执行下一个 case)。

如果没有找到匹配的 case 子句,且有 default 子句,则执行 default 代码块。

 

int option = 2;

switch (option) {
    case 1:
        cout << "Option 1 selected" << endl;
        break;
    case 2:
        cout << "Option 2 selected" << endl;
        break;
    case 3:
        cout << "Option 3 selected" << endl;
        break;
    default:
        cout << "Invalid option" << endl;
}

在这个示例中,option 的值为 2,因此会执行第二个 case 子句中的代码,输出 "Option 2 selected"。

switch 语句是一种非常有用的控制流结构,可以用来处理多种选择情况,使代码更加简洁、清晰。但需要注意的是,switch 语句适用于离散的、有限的情况,不适合用来处理范围较广的情况。

嵌套 switch 是指在一个 switch 语句内部使用另一个 switch 语句。这种结构可以用于处理更复杂的条件情况,其中外部 switch 控制一组情况,而内部 switch 控制这些情况的子情况。

语法

嵌套 switch 的基本语法如下:

switch (expression1) {
    case value1:
        switch (expression2) {
            case value2:
                // 当 expression1 等于 value1 且 expression2 等于 value2 时执行的代码
                break;
            // 更多的 case 语句
            default:
                // 当 expression1 等于 value1 但 expression2 不等于任何一个 case 时执行的代码
        }
        break;
    // 更多的 case 语句
    default:
        // 当 expression1 不等于任何一个 case 时执行的代码
}

外部 switch 控制一个表达式 expression1,而内部 switch 控制另一个表达式 expression2。根据外部 switch 中的 case 子句的值,选择执行内部 switch 中对应的 case 代码块。

示例

假设我们要根据用户选择的产品和其对应的操作执行不同的操作。我们可以使用嵌套 switch 来处理这种情况。

int product = 1;
int action = 2;

switch (product) {
    case 1:
        switch (action) {
            case 1:
                cout << "Add product 1 to cart" << endl;
                break;
            case 2:
                cout << "Remove product 1 from cart" << endl;
                break;
            default:
                cout << "Invalid action for product 1" << endl;
        }
        break;
    case 2:
        switch (action) {
            case 1:
                cout << "Add product 2 to cart" << endl;
                break;
            case 2:
                cout << "Remove product 2 from cart" << endl;
                break;
            default:
                cout << "Invalid action for product 2" << endl;
        }
        break;
    default:
        cout << "Invalid product" << endl;
}

在这个示例中,外部 switch 控制产品,内部 switch 控制操作。根据用户选择的产品和操作,执行不同的操作。

3.三元运算符

? : 运算符是 C++ 中的条件运算符,也称为三元条件运算符。它是 C++ 中唯一的三元运算符,因为它需要三个操作数。它的基本语法如下:

condition ? value_if_true : value_if_false;

其中,condition 是一个表达式,如果它的值为真(非零),则表达式的结果为 value_if_true,否则表达式的结果为 value_if_false

示例

以下是一个简单的示例,说明了 ? : 运算符的使用:

int x = 10;
int y = (x > 5) ? 100 : 200;
cout << "Value of y: " << y << endl;

在这个示例中,如果 x > 5 的条件为真,则 y 的值为 100,否则 y 的值为 200。因为 x 的值是 10,因此 x > 5 的条件为真,所以 y 的值是 100

注意事项

  • value_if_truevalue_if_false 可以是任何表达式,包括变量、函数调用、算术运算等。
  • ? : 运算符的结果可以赋值给变量,也可以直接输出或用于其他表达式中。
  • 该运算符通常用于简单的条件判断,可以使代码更加简洁,但过度使用可能会降低代码的可读性,因此在使用时需要谨慎考虑。

总之,? : 运算符是一种简洁的条件表达式,在一行中完成条件判断和赋值的操作,常用于简单的条件赋值或输出。

  • 18
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值