随笔 - 31  文章 - 0  评论 - 0  阅读 - 3299

第三章 三大结构 | 分支结构

if语句

语句结构

if (condition1 || condition2) {
// input the function
} else if (condition3 && condition4){
// input the function
} else {
// input the function
}

关系运算符

运算符名称
<小于
<=小于或等于
>大于
>=大于或等于
==等于
!=不等于
&&表示“and”

倘若我在condition的位置上变成赋值语句,那会怎么样。
当赋0时,返回假;当赋除0以外的其他值时,返回真。

注意
  1. 无论如何,都要写{},否则就会只运行if的下一行语句。
  2. else的归属权:如果没有{}else只与最靠近它的,且没有elseif匹配。不看对齐。

嵌套判断

就像下面这样的

if (condition_1) {
if (condition_2) {
// to do
} else {
// to do
}
} else {
// to do
}

意思就是无论if的判断如何,还得要再执行一个if,那么这就是嵌套
else总是和最近的if相匹配,缩进也不能暗示相匹配。
我们用翁凯老师的写的例子来说明

#include <stdio.h>
int main() {
int gameover = 0,count = 10;
if (gameover == 0)
if ( count > 20)
printf("player A win");
else
printf("player B win");
return 0;
}

我们认为gameover0,且count大于20的时候palyer A获胜。
但结果是
player B win
也就是说,else被当做是if ( count > 20)else
所以,无论如何,在ifelse的后面都要敲{}

级联判断

形如

if (condition1 || condition2) {
// input the function
} else if (condition3 && condition4){
// input the function
} else {
// input the function
}

switch-case语句

语句结构

switch(表达式){
case 常量表达式:
语句1;
break;
case 常量表达式:
语句2;
break;
default: // default是在前面情况找不到任何的匹配之后才会运行
语句;
break;
}

如果不写break会怎么样,就像下面的代码

#include <stdio.h>
int main() {
for(int i=0;i<3;i++){
switch (i) {
case 1:
printf("%d",i);
case 2:
printf("%d",i);
default:
printf("%d",i);
}
}
}

会返回011122

注意

  1. 如果不写break;,就会导致继续执行,不会跳出,而是会连续执行,如果有defult,则也会跑到defultcase只是一个“站牌”,竖起一个入口而已。
  2. 这个break;只能跳出switch-case
    switch-case的好处就是不用像if-elseif-else语句那样逐一判断。
posted on   Mryan2005  阅读(6)  评论(0编辑  收藏  举报  
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示