C语言的分支和循环(一)

分支

C语言中常使用If语句以及switch语句实现分支结构

注意:在C语⾔中,0为假,⾮0表⽰真,也就是表达式的结果如果是0,则语句不执行;表达式的结果如果不是0,则语句执⾏。

if语句

1 基本形式在这里插入图片描述
例如:输入一个整数,判断是否是基数

#include <stdio.h>
int main()
{
 int num = 0;
 scanf("%d", &num);
 if(num % 2 == 1)
 printf("%d 是奇数\n", num);
 return 0;
}

2 else的使用(与if配套使用)
愚见:可以理解为if的另一种情况
例如(上面那道题,增加条件,如果是奇数打印是奇数,否则打印偶数):

#include <stdio.h>
int main()
{
 int num = 0;
 scanf("%d", &num);
 if(num % 2 == 1)
 printf("%d 是奇数\n", num);
 else
 printf("%d 是偶数\n", num);
 return 0;
}

此外,这道题 if 仅控制一道语句,如果我们要if语句同时控制2条语句,那就要使⽤ {} 将代码括起来,
else 后也可以跟上⼤括号。
在这里插入图片描述

3 嵌套if
两种形式
在这里插入图片描述
上图中橙⾊背景的代码就是嵌套在前⾯的 else ⼦句中的,构成了嵌套的if语句。(我觉得也可以理解为并列if的多种情况,if是情况一,else if是情况二,else 是除去一二的所有情况)
再⽐如:在这里插入图片描述
这里第一个else便嵌套了if语句,用{}包含其中,同时嵌套的if语句又进行了嵌套,嵌套里面又进行了嵌套,共进行了三次。

4悬空else

注意:如果有多个 if 和 else ,可以记住这样⼀条规则, else 总是跟最接近的 if 匹配。

就比如这个代码:

#include <stdio.h>
int main() {
int a = 0;
int b = 2;
if(a == 1)
if(b == 2)
printf("hehe\n");
else
printf("haha\n");
return 0;
}

可能你认为结果是haha,但实际上什么也不输出。因为else 是和第⼆个 if进⾏匹配的,这样后边的 if…else 语句是嵌套在第⼀个 if 语句中的,如果第⼀个 if 语句就不成⽴,嵌套 if 和 else 就没机会执⾏了,最终啥都不打印。
所以记住

如果有多个 if 和 else ,可以记住这样⼀条规则, else 总是跟最接近的 if 匹配。

switch语句

与if语句类似,基本形式如下;

switch(表达式)
{
case 1:
case 2:
case 3:
default:
}

例如:

#include <stdio.h>
int main()
{
 int n = 0;
 scanf("%d", &n);
 switch(n%3)
 {
 case 0:
 printf("整除,余数为0\n"); 
 break;
 case 1:
 printf("余数是1\n"); 
 break;
 case 2:
 printf("余数是2\n"); 
 break;
 }
 return 0;
}
注意
  1. case 和后边的数字之间必须有空格
  2. 每⼀个 case 语句中的代码执⾏完成后,需要加上 break ,才能跳出这个switch语句。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值