if&switch

分支语句和循环语句

1.分支语句

1.1if分支

if (condition1)  // condition:可以判断true/false(1/0)的条件
{
    doSomething1;  // condition1为true(1)则进入该语句块执行内容,为false(0)则不进入,继续判断condition2
    // 执行完毕则离开整个判断语句(如果执行了doSomething1,后续即使condition2为true,也不会执行doStherthing2)
}
else if (condition2)
{
    doStherthing2;  // 如果再执行了doSomething1,后续仍然想判断condition2来判断是否需要执行doStherthing2,可以将"else if (condition2)"修改为"if (condition2)"
}
else
{
    doOtherting;  // 前面的所有判断均为false后进入该语句块执行内容
}
  1. 真假的值

    // <stdbool.h>
    #define true	1
    #define false	0
    // 0为false(假)
    // 非0为true(真)
    
  2. 执行完毕则离开整个判断语句(如果执行了doSomething1,后续即使condition2为true,也不会执行doStherthing2)

​ [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FhhnIEts-1674020782122)(.\if1.png)]

  1. 如果再执行了doSomething1,后续仍然想判断condition2来判断是否需要执行doStherthing2,可以将"else if (condition2)“修改为"if (condition2)”

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-iLHFUD8w-1674020782122)(.\if2.png)]

建议:

在与常量进行判断时,可以将常量置于表达式的左端,以避免书写"==“时误写为”="!

eg:

if (-1==arr)
{
    doSomething1;
}
else if (0==arr)
{
    doSomething2;
}
else if (1==arr)
{
    doSomething3;
}
else
{
    doOtherthing;
}

这样书写的好处是,当你不慎将"1==arr"写成了"1=arr",编译器会指出这是"不可修改的左值"

,而如果当你不慎将"arr==1"写成了"arr=1",编译器只会认为你先将"1"赋值给"arr"然后再判断"arr"的true/false,从而造成不易发现的过错

1.2switch分支

switch(integerExpression)  // 操作数是整形表达式(字符也可以当作整形)
{
    case int1:  // 整形1("操作数==int1"则进入,不满足则判断"int2")
        doSomething1;  // 执行的语块1
        break;  // 退出该"switch"
    case int2:  // 整形2
        doSomething2;  // 执行的语块2
        break;  // 退出该"switch"
    case int3:  // 整形3("操作数==int3"则进入,不满足则判断"int4")
        // 满足条件进入后,因为没有语句块则无相关操作
        // 但是同时没有"break"语句,所以会"直接"进入"case int4"执行"doSomething4"
    case int4:  // 情况1:不满足"int3"的条件没有进入"case int3",则会判断"操作数==int4"
        			 //        2:满足"int3"的条件进入"case int3",因为"case int3"没有"break"语句,"直接"进入"case int4"执行"doSomething4"
        doSomething4;
    case int5:  // 情况1:不满足"int4"的条件没有进入"case int4",则会判断"操作数==int5"
        			 //        2:无论什么情况只要进入"case int4"执行了"doSomething4",因为"case int4"没有"break"语句,"直接"进入"case int5"执行"doSomething5"
        doSomething5;
        break;  // 进入"case int5"遇见"break"退出
    default:  // 其他的情况
        doOtherthing;
        break;
}

建议:

无论是否有"default"情况需要执行相关语句,都应当写入。

default:
	break;

2. 循环语句

2.1


**建议:**

无论是否有"default"情况需要执行相关语句,都应当写入。

~~~ c
default:
	break;

2. 循环语句

2.1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值