通知图标

欢迎访问津桥芝士站

基础篇03-1——条件语句与开关语句

来自AI助手的总结
文章介绍了条件语句(if、if-else、嵌套if-else)、条件运算符以及switch-case语句的基本语法和使用方法。

条件语句

if语句中,首先判断表达式的值,然后根据该值的情况控制程序流程。表达式的值不等于0,即为真;否则为假。if语句有if,if–else和else if 三种形式。

一、if语句

语法:
if (条件表达式) {
    // 条件为真时执行的语句
}

例如:

int num = 10;
if (num > 5) {
    printf("num 大于 5。\n");
}

在这个例子中,如果 num 的值大于 5,就会输出 “num 大于 5。”。

二、if-else语句
语法:
if (条件表达式) {
    // 条件为真时执行的语句
} else {
    // 条件为假时执行的语句
}

例如:

int num = 3;
if (num > 5) {
    printf("num 大于 5。\n");
} else {
    printf("num 不大于 5。\n");
}

在这个例子中,如果 num 的值大于 5,就会输出 “num 大于 5。”,否则输出 “num 不大于 5。”。

三、if-else的嵌套
语法:
if (条件表达式1) {
    // 条件1为真时执行的语句
} else if (条件表达式2) {
    // 条件2为真时执行的语句
} else if (条件表达式3) {
    // 条件3为真时执行的语句
}
...
else {
    // 所有条件都为假时执行的语句
}

例如:

int score = 85;
if (score >= 90) {
    printf("优秀。\n");
} else if (score >= 80) {
    printf("良好。\n");
} else if (score >= 70) {
    printf("中等。\n");
} else if (score >= 60) {
    printf("及格。\n");
} else {
    printf("不及格。\n");
}

在这个例子中,根据不同的 score 值,会输出相应的等级评价。

上面的例子就是if – else嵌套。

条件运算符

条件运算符可对一个表达式的值的真假情况进行检验,然后根据检验结果返回另外两个表达式中的一个。

表达式1?表达式2:表达式3;
max=(a>b)?a:b;

在运算中,首先对第一个表达式的值进行检验。如果值为,则返回第二个表达式;如果为,则返回第三个表达式

例:a>b为真,则max=a;为假,则max-b

开关语句

开关语句,包括以下四种关键字:

1.switch:开关语句

2.case: 开关语句分支

3.default: 开关语句中的“其他”分支

4.break: 跳出当前开关

开关语句

switch开关语句是一个多分支选择语句,并且可以支持嵌套。

switch ( 变量表达式 )
{
    case 常量表达式1 : 语句; break;
    case 常量表达式2 : 语句; break;
    case 常量表达式3 : 语句; break;
    ...
    case 常量表达式n: 语句; break;
     
    default : 语句; break;
}

当变量表达式所表达的量与其中一个case语句中的常量相符时,就执行此case语句后面的语句,并依次下去执行后面所有case语句中的语句,除非遇到break;语句跳出switch语句为止。
如果变量表达式的量与所有case语句的常量都不相符,最后就执行default语句中的语句。

注意事项

switch语句非常有用,但在使用时必须谨慎。所写的任何switch语句都必须遵循以下规则:

  1. switch中的变量表达式,必须是整型数据,这些类型包括int、char等。
  2. 在case后的各常量表达式的值不能相同,否则会出现错误。
  3. 在case后,允许有多个语句,可以不用{}括起来。
  4. 各case和default子句的先后顺序可以变动,而不会影响程序执行结果。
  5. default子句可以省略不使用,但它可以用来处理所有未被case标签匹配到的情况。
  6. 在每个case标签处添加注释可以提高代码的可读性,特别是当case的逻辑比较复杂时。
  7. case标签值必须是常量表达式,不能是变量或运行时才能确定的值。
  8. 每个开关后都需要思考是否需要使用break。如果在某开关后没有break,那么它会执行下一个开关的内容。

举例说明

#include <stdio.h>

int main()
{
    int choice;
    printf("请输入一个数字(1-3):");
    scanf("%d", &choice);

    switch (choice) {
        case 1:
            printf("你选择了选项一。\n");
            break;
        case 2:
            printf("你选择了选项二。\n");
            break;
        case 3:
            printf("你选择了选项三。\n");
            break;
        default:
            printf("输入错误,请输入 1-3 之间的数字。\n");
    }

    return 0;
}

这个程序提示用户输入一个数字,然后根据输入的数字执行不同的case分支。如果输入的数字不在 1-3 范围内,则执行default分支输出错误提示信息。

另一个使用字符作为switch表达式的例子:

#include <stdio.h>

int main() 
{
    char grade;
    printf("请输入一个等级(A、B、C、D、F):");
    scanf(" %c", &grade);

    switch (grade) {
        case 'A':
            printf("优秀!\n");
            break;
        case 'B':
            printf("良好!\n");
            break;
        case 'C':
            printf("中等!\n");
            break;
        case 'D':
            printf("及格!\n");
            break;
        case 'F':
            printf("不及格!\n");
            break;
        default:
            printf("输入错误的等级。\n");
    }

    return 0;
}

这个程序让用户输入一个等级字符,然后根据输入的字符输出相应的等级评价。如果输入的字符不是有效的等级字符,则执行default分支输出错误提示信息。

请登录后发表评论

    没有回复内容