C语言分支与循环要点总结

if-else语句

c 语言是一门结构化设计语言支持三种结构顺序,选择,循环结构,在c 语言中 0 表示为假,非 0 表示真.
例子:输入一个整数判断其是否为奇数
#include<stdio.h>
int main()
{
     int a = 0;
     printf("请输入");
     scanf("%d", &a);
    if (a % 2==0 )
    {
     printf("你输入的数为偶数\n");
    }
    else
    {
     printf("你输入的数为奇数\n");
    }
    return 0;
}

注意:if后面默认为跟一条else语句,如果跟两条语句就需要加一个{}

嵌套if

在if和else中,else可以与另一个if连用,构成多重判断

#include<stdio.h>
int main()
{
    int n = 0;
    scanf("%d", &n);
    if (n == 0)
    {
        printf("输入的值是0\n");
    }
    else if(n>0)
        printf("正数\n");
    else
        printf("负数\n");
    return 0;
}

注意:if和else都可以嵌套

悬空else问题

如果有多个 if else ,可以记住这样⼀条规则, else 总是跟最接近的 if 匹配。 我们⾸先从下⾯代码开始理解

int main()
{
    int a = 0;
    int b = 2;
    if(a == 1)
        if(b == 2)
        printf("hehe\n");
        else
        printf("haha\n");
    return 0;
}

注意这里else是与最近的if匹配,带上大括号可以提升代码逻辑让可读性更高

关系操作符

>          大于运算符

>=        大于等于运算符

<=        小于等于运算符

==        相等运算符

!=         不相等运算符

关系表达式返回0或者1,表示真假, == 相等运算符与=赋值运算符要注意
多个运算符不易连用,例如
int a=3;
int b=20;
int c=4
if(a<b<c)//a<b成立为真1,1<4打印1
printf("1");
else
printf("0")

条件操作符

双目操作符:+ = * / % 

单目操作符:++ -- + - &

三目操作符(条件操作符):表达式1?表达式2:表达式3,条件操作符的计算逻辑是:如果 exp1 为真, exp2 计算,计算的结果是整个表达 式的结果;如果exp1 为假, exp3 计算,计算的结果是整个表达式的结果。

逻辑操作符

&& || ! 并,或,反

一个局部变量不初始化,是随机值,若是全局变量不初始化则是 1
int main()
{
    int flag = 0;
    if (!flag)
    printf("do something");
    return 0;
}
逻辑与运算符

必须两个同时满足
int main()
{
    int mouth = 0;
    scanf("%d",&mouth);
    if (mouth >= 3 && mouth <= 5)
    printf("spring");
    return 0;
}

逻辑或 ||

短路
C 语言逻辑运算符还有⼀个特点,它总是先对左侧的表达式求值,再对右边的
表达式求值,这个顺序是保证的。
如果左边的表达式满⾜逻辑运算符的条件,就不再对右边的表达式求值。这种
情况称为 短路
&& 左边为假,右边不再计算,总体为假
|| 左边为真,右边无需计算,总体为真

switch 语句
除了 if 语句外, C 语⾔还提供了 switch 语句来实现分⽀结构。
switch 语句是⼀种特殊形式的 if...else ? 结构,用于判断条件有多个结果的情况。它
把多重的 else if 改成更易⽤、可读性更好的形式
switch (expression)
{
        case value1 :
                                statement
        case value2 :
                                statement
        default :
                                statement
}
switch 后的 expression 必须是整型表达式
case 后的值,必须是整形常量表达式
注意每个 case 后面的 break 不要忘记
default 处理所有 case 都不能匹配的情况,没有明确顺序要求,但是通常是放在
最后
while 循环语句

while 可以实现循环效果
1 break 用于 跳出一个循环体或者完全结束一个循环 ,不仅可以结束其所在的
循环,还可结束其外层循环。
2 continue 语句的作用是 跳过本次循环体中剩下尚未执行的语句,立即进行
下一次的循环条件判定 ,可以理解为只是中止 ( 跳过 ) 本次循环,接着开始下一
次循环。
例题
输⼊⼀个正的整数,逆序打印这个整数的每⼀位
例如:
输⼊: 1234 ,输出: 4 3 2 1 输⼊: 521 ,输出: 1 2 5
题⽬解析
1. 要想得到 n 的最低位,可以使⽤ n%10 的运算,得到的余数就是最低位,如:
1234%10 得到 4
2. 要想去掉 n 的最低位,找出倒数第⼆位,则使⽤ n=n/10 操作就可以去掉最低
位的,如: n=1234/10 得到 123 123 相较于 1234 就去掉了最低位, 123%10
得到倒数第⼆位 3
3. 循环 1 2 两个步骤,在 n 变成 0 之前,就能到所有的位。
#include <stdio.h>
int main()
{
    int n = 0;
    scanf("%d", &n);
    while(n)
     {
        printf("%d ", n%10);
        n /= 10;
      }
    return 0;
}

  • 25
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值