首页 > 其他分享 >C语言04-运算符、流程控制(分支控制、循环控制语句)

C语言04-运算符、流程控制(分支控制、循环控制语句)

时间:2024-04-07 11:03:51浏览次数:32  
标签:语句 控制 04 ... 运算符 case while 表达式

第 7 章 运算符

7.5 赋值运算符 ——副作用针对左操作数

1. 赋值运算符有副作用,针对左边操作数
2. 左边操作数必须是变量的形式,右边操作数可以是常量、变量、表达式

eg:c += 3;   // 等价于 c = c + 3;
 // 从右向左赋值
    int x = num = 100;

7.6 三元运算符

a ? b: c;
表达式取值规则:
① a 成立,b 作为整个表达式的值
② a 不成立,c 作为整个表达式的值

7.7 其他运算符

,	二元运算符,表达式的值是第二个操作数的值
sizeof
&
*	——取值运算符
.	——成员选择(对象)
->	——成员选择(指针)

7.8 运算符优先级

(56 + 89) * 2
56 + 9 - 7

int a=10;
a++ + a-- - a++ * a--

a > 10 * 2

a >= 18 && a < 60

(1)不要过多的依赖运算的优先级来控制表达式的执行顺序,这样可读性太差,尽量使用小括号来控制表达式的执行顺序。
(2)不要把一个表达式写得过于复杂,如果一个表达式过于复杂,则把它分成几步来完成。
(3)运算符优先级不用刻意地去记忆,总体上:一元运算符 > 算术运算符 > 关系运算符 > 逻辑运算符 > 三元运算符 > 赋值运算符。

特例:当给一个变量加括号赋多个值时,只把括号最右边的值赋予该变量   
    int res1 = (a=200,b*=5);
    printf("res1=%d \n", res1);     //100√


    int res2 = (a=100,b=200,c=300);
    printf("res2=%d \n", res2);     //300√

注:添加 () 提高优先级!

第 8 章 流程控制

8.1 分支控制语句

① 单向分支

if (条件表达式)
{
	语句1;    
    语句2;
    ...
    语句n; 
}

② 双向分支

if (条件表达式)
{
	语句1;    
    语句2;
    ...
    语句n; 
} 
else 
{
    语句1;    
    语句2;
    ...
    语句n; 
}

③ 多向分支 else if

if (条件表达式1)
{
	语句1;    
    语句2;
    ...
    语句n; 
}
else if (条件表达式2)
{
	语句1;    
    语句2;
    ...
    语句n; 
}
else if (条件表达式2)
{
	语句1;    
    语句2;
    ...
    语句n; 
}
else 
{
	语句1;    
    语句2;
    ...
    语句n; 
}

④ 多向分支 switch case

switch (表达式)
{
   case 表达式可能的值1:   
        语句1;
        语句2;
        ...
        break;
    case 表达式可能的值2:   
        语句1;
        语句2;
        ...
        break;
    case 表达式可能的值3:   
        语句1;
        语句2;
        ...
        break;
    default:
        语句1;
        语句2;
        ...
}

注意:

(1)switch后面表达式的值必须是一个整型(char、short、int、long等)或枚举类型。

(2)case后面的值必须是字面量常量,而不能是变量。

(3)default是可选的,当没有匹配的case时,执行default。

(4)break语句可以使程序跳出switch语句块,如果没有break,会执行下一个case 语句块,直到遇到break或者执行到switch结尾,这个现象称为穿透。

⑤ 嵌套分支 (双向分支+嵌套)

if ()
{
    if ()
    {
        
    }
    
    switch ()
    {
        case 10:
            if ()
            {
                
            }
        break;
        case 20:
           	....
    }
} 
else
{
    
}

8.2 循环控制语句

① while 循环

while (条件表达式)
{
    语句1;
    语句2;
    ...
    语句n;
}

死循环

	while (1)
    {
        printf("How Are You!\n");
    }

② do while 循环

do
{
    语句1;
    语句2;
    ...
    语句n;
} while (条件表达式);
while 与 do while 的区别

注:do while 只有第一次没有经过判断直接执行循环体语句,以后每次都要经过判断!

③ for 循环

for (循环控制变量初始化; 条件表达式; 循环控制变量的变化)
{
    语句1;
    语句2;
    ...
    语句n;
}

说明:

  1. 循环控制变量初始化只执行一次,在循环之前
  2. 条件表达式,每次循环语句执行前先进行条件判断,比循环体语句(大括号内部的语句)多执行一次
  3. 循环控制变量变化循环几次就执行几次,每次会在循环体语句后面执行

④ 多重循环

标签:语句,控制,04,...,运算符,case,while,表达式
From: https://www.cnblogs.com/petard/p/18118638

相关文章

  • 2024-04-07 记录win10批量修改文件后缀的方法 ==》ren *.exe *.zip
    使用ren命令,注意是win10系统在需要修改后缀名的文件夹路径打开cmd,如: 比如我想把这些exe文件修改为zip后缀,现在路径打开cmd,然后输入命令:ren*.exe*.zip注意该命令会把当前文件夹内所有的.exe后缀批量改成.zip,如果是重要文件,请先备份,以防丢失。 以上没有报错表示成功,如......
  • 超级好用的 IEC104 主站/客户端模拟器
    目录超级好用的IEC104主站/客户端模拟器主要功能软件截图超级好用的IEC104主站/客户端模拟器官网下载地址:http://www.redisant.cn/iec104client主要功能同时模拟多个主站/客户端。在单个连接中模拟多个站(公共地址)。完整的信息对象解析,通过表格查看信息对象的所有属性。......
  • 【蚂蚁笔试题汇总】[全网首发] 2024-04-06-蚂蚁春招笔试题-三语言题解(CPP/Python/Jav
    ......
  • ubuntu 20.04 安装 docker-compose
    1.安装Docker在Ubuntu20.04安装Docker先启用Docker存储库,导入存储库GPG密钥,然后安装Docker。1.1安装sudoaptinstallapt-transport-httpsca-certificatescurlgnupg-agentsoftware-properties-common-ysudoapt-getremovedockerdocker.iocontainerdrunc-y......
  • C语言03-数据类型、运算符
    第6章数据类型6.5获取数据存储大小sizeof 运算符,可以计算出指定数据的字节大小结果是size_t类型的数据,对应的格式占位符是%zu使用说明:计算指定数据的字节大小1、sizeof和数据类型名称一起使用eg:printf("char:%zu\n",sizeof(char));2、sizeof和变量......
  • 软件测试2024.04.06
    学习目标2024.04.06多张表查询(容易出面试题)1.掌握内连接2.掌握左连接和右连接3.掌握自关联与子查询一.连接查询当查询结构源于多张表时,需要将多张表连接成一个大的数据集,再选择合适的结果返回。内连接:查询的结果只显示两个表中满足连接条件的部分。(交集)内连接语法1:s......
  • 后端学习记录~~JavaSE篇(day03-流程控制语句-上)
    if...else与Switch...case语句一、表达式和语句表达式:(1)变量或常量+运算符构成的计算表达式(2)new表达式,结果是一个数组或类的对象。(3)方法调用表达式,结果是方法返回值或void(无返回值)。语句:(1)分支语句:if...else,switch...case(2)循环语句:for,while,do...while(3)跳转语句:brea......
  • deepin20.9控制中心改造
    1.概述deepin20.9不再维护,但是控制中心有一些细节问题还没有修复。本篇博客记录修复deepin20.9控制中心UI细节问题的过程2.实践过程放开源码源:$cat/etc/apt/sources.list##Generatedbydeepin-installerdebhttps://community-packages.deepin.com/deepin/apricot......
  • Pytorch入门实战: 04-猴痘病识别
    ......
  • 2024-04-06
    2024-04-06太空飞行计划问题最小割模型源点向实验连边,容量是收益仪器向汇点连边,容量是花费割掉一条边,代表放弃实验/购买仪器合法的情况就是源点汇点不连通,代表要么买了仪器,要么用到这台仪器的所有实验都放弃记录总收益为sum,最小割为res\(ans=sum-res\)(这题读入特别恶心......