C语言分支和循环语句

本文详细介绍了C语言中的关系运算符、条件操作符(包括三目运算符和逻辑运算符),以及if-else、switch、while、for和do-while等控制结构的用法、区别和注意事项,帮助读者理解和正确运用这些关键概念。
摘要由CSDN通过智能技术生成

【关系运算符】

1. 六大关系表达式
在C语言中,关系表达式用于比较两个表达式的大小关系,以下是六大关系表达式:
- `>`:大于
- `>=`:大于等于
- `<`:小于
- `<=`于等于
- `==`:等于
- `!=`:不于


2. 区分‘=’和‘==’
在C语言中,`=和`==`有着不同的含义和使用场景:
- `=`:赋值运算于给量赋予值。例,`int x = 5;`,这行代码的意思是将5赋值给变量x。
- `==`:相等运算符,用于比较两个表达式的值是否相等。例如,`if (x == 5)`,这行代码的意思是比较变量x的值是否等于5。
        需要注意的是,虽然`=`和`==`看起来相似,但它们的用途完全不同。如果你想要比较两个变量的值是否相等,你应该使用`==`,而不是`=`。如果你想要给变量赋值,那么你应该使用`=`。错误的理解和使用这两个运算符可能会导致程序出现错误的行为[1][2]。
 
3. 注意事项
        当你使用`==`进行比较时,你需要确保你的比较对象是常量或者已知的值,而不是另一个变量。这是因为`==`运算符的目的是比较两个表达式的值是否相等,如果你的比较对象是未知的变量,那么你无法确定它们是否相等。此外,如果你正在比较的是一个变量和一个常量,你需要确保常量的类型和变量的类型相同,否则编译器会抛出错误[1][2]。 

【条件操作符】

4.三目运算符
在C语言中,三目运算符是一种特殊的运算符,它允许我们根据一个条件表达式来选择两个不同的值中的一个。三目运算符的基本语法如下:
 

表达式1 ? 表达式2 : 表达式3


        这里,`表达式1`是一个条件表达式,如果它的值为真(非零),则整个表达式的值为`表达式2`的值;否则,整个表达式的值为`表达式3`的值。


5.三大逻辑运算符
C语言中的三大逻辑运算符分别是`&&`(逻辑与)、`||`(逻辑或)和`!`(逻辑非)。下面是它们的真值表:
| A | B | A && B | A || B | !A |
|---|---|----------|---------|-----|
| T | T |   T      |  T      | F  |
| T | F |   F      |  T      | F  |
| F | T |   F      |  T      | T  |
| F | F |   F      |  F      | T  |
        其中,T代表真(true),F代表假(false)。这些运算符用于构建复杂的逻辑表达式,以便进行更精确的条件判断。


6.短路
        在C语言中,短路是指一种特殊的行为,当使用逻辑运算符`&&`或`||`进行计算时,如果已经能够确定整个表达式的值,那么就不会再继续计算剩余的部分。这种行为被称为短路。例如,对于表达式`A && B`,如果`A`为假,那么无论`B`的值如何,整个表达式的值都将是假,因此没有必要再计算`B`的值。同理,对于表达式`A || B`,如果`A`为真,那么整个表达式的值就已经确定,因此没有必要再计算`B`的值。

【switch】

7. if-else如何改写为switch语句?

        在C语言中,语句可以被语句替换,特别是当你需要根据一个变量的不同值选择不同的执行路径时。以下是语句转换为语句的一个例子:if-else,switch,if-else,switch

if (condition1) {
    // do something
} else if (condition2) {
    // do something else
} else {
    // do another thing
}

转换为语句后,可以表示为:switch

switch (variable) {
    case value1:
        // do something
        break;
    case value2:
        // do something else
        break;
    default:
        // do another thing
        break;
}

        在这个例子中,是你想要检查的变量,和是该变量可能取的值。每个语句后面跟着一个关键字,用于结束当前的块。如果没有匹配的,那么会执行部分的代码。

8. switch后的表达式类型是什么?

  switch语句后面的表达式必须是整型表达式。这是因为语句是基于整型表达式的值来进行分支选择的switch。

9. case后面值的类型是什么?(注意case和值之间一定要有空格)

  case后面的值必须是整型常量表达式。这些常量表达式用来匹配语句后面表达式的值

10. default?swtich的运行顺序是什么?

        default关键字是语句的一部分,它表示默认情况。如果在所有的语句中都没有匹配的值,那么就会执行部分。语句的执行顺序是从上到下,一旦找到匹配的,就会执行对应的代码块,并且不会继续向下执行,除非使用了关键字来退出块

【循环语句】

11.while 与 if 语句的区分
 
        while 和 if 都是 C 语言中的基本语句类型,它们分别用于循环和条件判断。while 语句用于在满足特定条件时重复执行代码块,而 if 语句用于在满足特定条件时选择执行不同的代码块。
 
12.while 语句的基本格式是:
 

while (condition) {
    // 循环执行的语句
}


13.if 语句的基本格式则是:

if (condition) {
    // 如果条件为真,则执行的语句
} else {
    // 如果条件为假,则执行的语句
}


        两者的主要区别在于 while 语句会在条件为真时反复执行代码块,而 if 语句仅在条件为真时执行一次代码块。


14.while 的执行流程
        while 循环的执行流程是:首先评估 condition 表达式的值,如果为真(即非零),则执行循环体内的语句,然后再次评估 condition 表达式,这个过程会一直重复,直到 condition 表达式的值为假(即零),循环终止,程序接着执行位于 while 循环之后的其他语句。
逆序打印正整数
        要实现逆序打印一个正整数,我们可以使用 while 循环结合取余运算符(%)。具体做法是不断取出整数的最低位,然后除以十,舍弃最低位,循环执行直到整数为零。

#include <stdio.h>

int main() {
    int number;
    scanf("%d", &number); // 输入正整数
    while (number) {
        printf("%d ", number % 10); // 打印当前最低位
        number /= 10; // 去除最低位
    }
    return 0;
}


15.for 循环后的三个表达式
        for 循环的三个表达式分别用于初始化、条件检查和循环迭代。它们的执行顺序是:首先执行初始化表达式,然后执行条件检查表达式,如果为真,则执行循环体,然后执行迭代表达式,更新循环变量。这个过程会一直重复,直到条件检查表达式的值为假。


16.do-while 与 while 的区别
        do-while 循环至少执行一次循环体,因为它的条件判断是在循环体执行之后。而 while 循环则可能在一次也不执行循环体的情况下结束,因为它在每次循环开始时就进行条件判断。

// do-while 循环示例
#include <stdio.h>

int main() {
    int count = 0;
    do {
        count++;
    } while (count < 5); // 打印从1到5
    return 0;
}

// while 循环示例
#include <stdio.h>

int main() {
    int count = 0;
    while (count < 5) {
        count++;
    } // 打印从1到5
    return 0;
}


17.循环体内执行多个语句
        要在循环体内执行多个语句,可以将它们放在同一组花括号内。这样,这些语句将作为一个整体在每次循环时一起执行。

// 示例
#include <stdio.h>

int main() {
    while (condition) {
        // 多个语句
        printf("Statement 1\n");
        printf("Statement 2\n");
    }
    return 0;
}


18.break 与 continue 的区别
        break 用于完全跳出所在的最内层循环,并且继续执行后续代码。而 continue 用于结束当前循环,直接进入下一次迭代的条件判断。


19.在 switch 中使用 break 和 continue
        在 switch 语句中,break 用于结束整个 switch 结构,而 continue 用于在满足某个条件时跳过当前的 switch 分支,直接进入下一个条件判断。


19.while、for、do-while 使用 break 和 continue 的区别
        在使用 break 和 continue 时,while 和 for 循环的跳转行为相同,都是跳出所在的最内层循环。但是,do-while 循环的 break 和 continue 行为与前两者不同,因为 do-while 循环的跳转是基于 do-while 结构本身而非其内部代码块的执行情况。
 

  • 14
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值