1分钟学会C语言中的分支语句

分支语句也被叫做条件判断语句,顾名思义,就是如果程序判断此条件成立,则执行该条件语句中的代码,反之则跳过该段代码

看完这篇文章,或许可以浅浅加深大家对分支语句的理解

if语句

if语句一般搭配else if 和else来使用

int main()
{
   int i = 0;
   for(i=0;i<5;i++)
   {
     if(i==0)
     {
     printf("0\n");//如果i==0则打印0
     }
     else if(i==1)
     {
     printf("1\n");//如果i==1则打印1
     }
     else
     {
     printf("666")//如果上述条件都不成立则打印666
     }
   }

   return 0;
}

使用if else if else要注意一下几点:
1.这个组合在执行时,一旦有一个条件成立,代码在执行完这个条件后则会跳过该组合
例如:在上图中,当i=0时,条件(i==0)成立,则程序在打印完0后就会跳过下面的else if和else语句,看都不带多看一眼的,如果需要继续判断下去,则需并排使用if

int a = 1;
int b = 2;
int c = 3;
int tmp = 0;
if(a<b)
{
tmp = a ;
a = b;
b = tmp;
}
if(a<c)
{
tmp = a;
a  = c ;
c  =  tmp;
}
printf("%d",a);

上述代码中的两个if语句都一定会进行判断
2.千万不要手抖在判断语句后加个分号,像这样:

if(i==0)://致命分号
{
printf("我一定会打印出来的!-.-")}

如果在后面加分号,则表示该条语句结束,所以无论该条件是否成立,代码块内部的代码都会执行。
3.错将"==“写成”="

int i =1;
if(i=3)//i=3是一个赋值语句,不是判断语句,该表达式结果为非0的3,所以程序判断该条件成立
{
printf("求你把多打一个=吧");
}


如果将经常条件里的内容写成这样,不妨改成下面这种写法

if(3==i)//将不可修改的3写在左边,即使将==写成=,编译器也会报错,很容易发现
{
printf("666");
}

switch语句

int n =0;
scanf("%d",&n);
switch(n)
{
case 1:
case 2:
case 3:
case 4:
case 5:printf("工作日\n");
       break;
case 6:
case 7:printf("周末休息日\n");
       break;
default:printf("输入错误")}

swich括号里的必须是一个整形表达式,不能为字符和浮点数,当下面的case后面的整形与之相同时,则将执行该条case语句并会一直接着执行下面的case语句,直到遇到break跳出switch,当没有与之匹配的case语句,则会执行default中的语句。
注意事项:
1.若不加break,switch找到与之匹配的case语句后会一直执行下去(若没有与之匹配的case,执行完default语句也会接着往下执行),可能无法达到想要的运行结果,所以要根据情况加上break语句以达到一定的效果。
2.default语句一般放在switch语句的结尾,最好也要加上break修饰。
3.case后面的数字是可以不按照大小顺序往下写的。

代码块

代码块就是一堆代码的集合体,在if,else if 和switch等后面若不使用代码块,则只能跟一句代码,使用代码块,还可以增强代码的可读性,使得代码更加美观。

int i =1;
if(1==i)
     printf("1")//只能跟这一句代码,后面的代码不归此if管辖
     printf("2");//不归上面的if管
if(1==i)
{
printf("6")printf("7")printf("8")}//只要if条件成立,该代码块里的代码都会执行,反之则都不执行

再次强调:

1.判断语句千万别写成了赋值语句
2.switch要注意在case后加上break
3.多用代码块来配合分支语句来实现相应功能,并提高代码可读性

希望我的这篇文章对你有帮助,如有错误,请指正

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值