C.Day4

📅 2026/8/20 23:56:10
C.Day4
分支和循环1. if 语句1.1 ifif 语句的语法形式如下表达式为真则语句执行表达式为假则语句不执行。在C语言中0为假非0为真。eg.1 输入一个整数判断是否为偶数1.2 else语法形式如下eg.2 输入一个整数判断一个数是奇数还是偶数并打印因为一个数取余2只会得到0和1所以还有如下写法1.3分支中包含多条语句默认 if 和 else 语句中都只控制一条语句如果要同时控制多条语句就要使用 { } 将代码括起来。使用 { } 控制多条语句这个也叫程序块或者复合语句。1.4嵌套 if在 if else 语句中else 可以与另一个 if 语句使用构成多重判断。eg.3 输入一个整数如果是正数再判断是基数还是偶数并输出如果不是正数则输出非正数1.5悬空 else 问题如果有多个 if 和 elseelse 总是跟最接近的 if 匹配。2.关系操作符C语言用于比较的表达式称为“关系表达式”里面使用的运算符就称为“关系运算符”。 大于 小于 大于等于 小于等于 相等! 不相等关系表达式通常返回 0 或 1 表示真假。2.1注相等运算符 与赋值运算符 是两个不一样的运算符上例中将 a 1 写成 a 1 这个式子表示对变量 a 赋值1它的返回值为1所以 if 判断总为真。为了防止出现这种错误将变量写在等号右边。编译器就会报错2.2多个关系运算符不宜连用eg.i j k该式中i j 返回 0 或 1 所以最终是 0 或 1 与变量 k 进行比较正确写法i j j k3.条件操作符条件操作符也叫三目操作符需要接受三个操作数形式如下exp1 ? exp2 : exp3计算逻辑如果 exp1 为真计算 exp2 如果 exp1 为假计算 exp3eg.4 找两个数中较大值4.逻辑操作符||逻辑取反运算符逻辑与运算符并且||逻辑或运算符或者4.1逻辑取反运算符 x!x非00014.2逻辑与运算符 两侧的表达式都为真则为真否则为假xyxy非0非01非0000非000004.3逻辑或运算符 ||两侧表达式至少有一个为真则为真否则为假xyx||y非0非01非0010非010004.4短路C语言逻辑运算符还有一个特点它总是先对左侧的表达式求值再对右边的表达式求值。如果左边的表达式满足组逻辑运算符的条件就不再对右边的表达式求值这种情况称为“短路”。上例中a 为先使用后加1所以 i 的值就为0后面的 b 和 d 不再计算5. switch 语句除 if 语句外C语言还提供了 switch 语句来实现分支结构。switch 语句是一种特殊的 if...else 结构用于判断条件有多个结果的情况。上面代码中根据表达式 expression 不同的值执行相应的 case 分支如果找不到对应的值就执行 default 分支switch 后的 expression 必须是整型表达式case 后的值必须是整型常量表达式5.1 if 语句和 switch 语句的对比eg.5 输入一个整数计算除3后的余数5.2 switch 语句中的 break在eg.5中去掉 break后运行如下原因switch 语句也是有分支效果的只有在 switch 语句中使用 break 才能跳出 switch 语句所以 switch 语句中的 break 语句是非常重要的能实现真正的分支效果。eg.6 输入1~5输出“工作日”输入6~7输出“休息日”eg.6 中我们需要根据实际情况来在代码中是否使用 break5.3 switch 语句中的 default在使用 switch 语句的时候经常遇到一种情况如 switch 后的表达式中的值无法匹配 case 语句的时候这时候要么不做处理要么就加入 default 子句。同时在 switch 语句中 case 和 default 语句是没有顺序要求的只要满足实际需求即可。6. while 循环6.1 语法形式6.2 while 语句的执行流程6.3 while 循环的实践eg.7 输入一个正整数逆序打印这个整数的每一位7. for 循环7.1语法形式for 循环是三种循环中使用最多的表达式1用于循环变量的初始化表达式2用于循环结束条件的判断表达式3用于循环变量的调整7.2 for 循环的执行流程7.3 for 循环的实践eg.8 在屏幕上打印1~107.4 while 循环和 for 循环的对比for 和 while 在实现循环的过程中都有初始化、判断、调整三个部分但是 for 循环的三个部分非常集中便于代码的维护8. do-while 循环8.1 语法形式在循环语句中 do-while 的语句使用最少。while 和 for 这两种循环都是先判断条件满足就进入循环执行循环语句而 do-while 循环则是先直接进入循环体执行循环语句再判断所以 do-while 语句中循环体是至少执行一次的。8.2 do-while 循环的执行流程8.3 do-while 循环的实践eg.9 输入一个正整数计算这个整数是几位数9. break 和 continue 语句在循环执行的过程中如果某种状况发生需要提前终止循环就要用到 break 和 continue 两个关键字。break 的作用是用于永久终止循环只要 break 执行直接就会跳出循环继续往后执行。continue 的作用是跳过本次循环中 continue 后面的代码。9.1 while 循环中的 break 和 continue9.1.1 break 举例9.1.2 continue 举例死循环9.2 for 循环中的 break 和 continue9.2.1 break 举例9.2.2 continue 举例9.3 do-while 循环中的 break 和 continuedo-while 循环中的 break 和 continue 的作用和 while 循环中几乎一模一样。10.循环的嵌套eg.10 找出1~200之间的素数并打印在屏幕上。优化sqrt是开平方函数使用时要包含match.h头文件如果 i a * b , a 和 b 是 i 的因子那么 a 和 b 中至少有一个数字 i ^ 0.511. goto 语句C语言提供了一种非常特别的语法就是 goto 语句和跳转标号goto 语句可以实现在同一个函数内跳转到设置好的标号处。goto语句如果使用的不当就会导致在函数内部随意乱跳转打乱程序的执行流程所以建议是能不用尽量不去使用但是 goto语句也不是一无是处在多层循环的代码中如果想快速跳出使用 goto就非常方便了。