【初学c语言】day2分支结构

分支结构:

顺序结构:

按照顺序从上到下依次执行

选择结构:

主要分if语句和switch语句

if语句:

基础语法:

    int age =10; 
   if(age>20&&age<30)
        printf("弱冠");
        printf("%d\n",age);
    if(age<20&&age>35)
    {
        printf("%d\n",age);
        printf("您的年龄不在青年范围内");
    }

if语句如果没有花括号这会导致本不该被输出的语句被输出了

例如:

 所以如果想要if控制多条语句必须带上大括号!!!!!

if else语句:

对于上述代码我们只需要判断是否为青年时我们可以使用if-else语句来优化一下

例如:

    if(age>20&&age<35){
        printf("弱冠");
        printf("%d\n",age);
    }else{
        printf("%d\n",age);
        printf("您的年龄不在青年范围内");
    }

值得注意的是:

对于if-else的匹配上并非是对齐就是一对,而是else与离他最近的未匹配的if相匹配

    if(age > 20 && age < 35)
        printf("弱冠");
        printf("%d\n",age);
        if(age > 20 && age < 30)
            printf("路还很长继续加油");
    else 
        printf("6");
    

 在这个代码中else与第一个if对齐,但实际与其匹配的if是第二个。

所以对于else而言其配对方法与英语的就近原则相类似

switch语句:

基础语法:

    int a;
    scanf("%d",&a);        
    switch(a)
    {
    case 1:
        printf("a");
        break;
    case 2:
        printf("a");
        braek;
    case 3:
        printf("a");
        break;
    }

注意:在没有特殊的需求时必须提供break语句以防止case穿透;//braek语句后面会讲

通过代码我们可以发现在多分支结构对同一对象进行判断时使用switch语句相较于if语句更为简洁

合理使用case穿透有时也会有奇效

例如:

	sum = 0;
	switch(month) {
	case 12:
		sum = 30;
	case 11:
		sum += 31;
	case 10:
		sum += 30;
	case 9:
		sum += 31;
	case 8:
		sum += 31;
	case 7:
		sum += 30;
	case 6:
		sum += 31;
	case 5:
		sum += 30;
	case 4:
		sum += 31;
	case 3:
		sum += 28;
	case 2:
		sum += 31;
	case 1:
		sum += 0;
		break;

此处利用case穿透完成每个月天数的累加。//至于为什么要倒过来嘛也许你可以自行尝试(因为代码是从上到下读取的特性所以如果正序放就导致输入12月时只有最后一行输出)

小总结:

if语句与switch语句都是分支语句在不同的场景使用,面对的需求是不同的,if语句结合后续的循环语句可以帮助筛选一些条件以完善代码

循环结构:

for循环:

基础语法:

    int i , sum;
    for(i = 0 ; i <= 9 ; i++)
    {
        sum += i;
    }

上述代码是一个简单的for循环语句,表示是10以内的数之和。

通过此代码for的基础结构也很清晰

for(初始化;布尔表达式;更新表达式)

{

循环体;

}

所谓初始化即对循环控制的变量进行初始化赋值,该过程只执行一次,完成后在本次for循环中不会再重新定义。、

布尔表达式:

可以简单理解为循环次数,即在此处对刚刚初始化的对象进行限制,以保证循环我们想要的次数

更新表达式:

即对初始化对象更新,改变它的值使他靠近在布尔表达式中所限制的值。

循环体:

将我们想要多次执行的代码块放入其中以减少代码冗余。

while循环:

基础语法:

int a = 12;

while(a > 10)
{
    printf("6");


}

对于while而言只要()内的判断为真就执行内部循环体,为假就不执行

但在这里有另一种循环:

就是我们的do - while循环

int a = 12;
do
{
    a--;

}while(a > 0);

do - while循环嘛既然带个do了那必然不一样so介个循环会无条件先执行一次,就头铁先试一次再来判断;do - while循环的循环体不在while后而是在do后而且要注意条件不然就死循环了!!!!!

----------------------------------------------

控制语句:

终于到介里了还记得前面讲的break咩,它来喽。

break与continue:

break语句是用来终止程序。搭配分支循环语句使用用来终止程序。

由此可见break语句的不同位置会导致不同的结果,且break语句一旦执行该循环立刻结束不再执行。 

continue语句

  • 用来终止当前循环直接进行下一次循环(搭配if使用)在contiune后的代码全跳过
  • 在continue语句后写代码编译器不会报错!!!但后面的代码永远不会执行!!!

由此验证了continue;语句的确直接跳过了此次循环不再执行后续语句。 

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值