流程控制2

98 阅读2分钟

「这是我参与2022首次更文挑战的第5天,活动详情查看:2022首次更文挑战」。

补充运算符知识:

自增【或者自减】
分类:
    前自增      ++i
    后自减      i++
前自增和后自增的异同:
    相同:
        最终都使i的值加1
    不同:
        前自增整体表达式的值是i1后的值
        后自增整体表达式的值是i1前的值
        

image.png

image.png

int m = i++;

printf(“%d”,i++);

类似于这样的写法是不规范的,而且是不可移植的,尽量避免这么去写!!!

三目运算符

格式:

A?B:C

等价于

if(AB;
else
    C;
    #include <stdio.h>
    int main(void)
    {
        int i;
        
        i = (0>2?5:1);
        printf("%d\n",i);
        
        return 0;
    }

逗号表达式

格式:

A,B,C,D)

功能: 从左到右执行,最终表达式的值是最后一项的值。

    int main(void)
    {
        int i;
        int j =2;
        
        i = (j++,++j,j+2,j-3);
        printf("%d\n",i);
        
        return  0;
    }

结果为1

while循环

格式:

while(表达式)
    语句;

for(1;2;3) A; 等价于 while(2) { A; 3; } while和for可以相互转化,但for的逻辑性更强,更不容易出错,推荐多使用for

do...while

格式:

 do{
    ......
}while(表达式);

用处:主要用于人机交互。

switch

image.png 所有case后面的常量表达式为便于描述我们姑且称之为标签,这些标签的类型通常为:(1)枚举常量(2)数值变量(3)字符常量(4)常变量,枚举变量是不能作为标签使用的。switch后面的括号里的表达式是允许任何类型的。

switch是选择不是循环,如果出现break语句,退出switch执行下面的语句,出现continue是错误的,除非switch本身属于循环的一部分。

break和continue

break:
    如果用于循环是用来终止循环
    如果用于switch,则是用于终止switch
    不能直接用于if,除非if属于循环内存的一个子句
    在多层循环中,只能终止距离它最近的那个循环

image.png break虽然是if内部的语句,但终止的是外部的for循环。

continue:
    用于跳过本次循环余下的语句,
    转去判断是否需要执行下次循环

image.png