学习笔记- switch语句和if else 语句

●分支结构

●二分支:if-else语句

●多分支:else if、嵌套的if-else、switch

else-if 语句是最常用的实现多分支(多路选择)的方法

if (表达式1) 

  语句1;

else if (表达式2) 

  语句2;

……

else if (表达式n-1)

  语句n-1;

else

 语句n;

 

Ps:这里标注一下我最近刚学的停止字符

#include <stdio.h>

int main(void)

{

  char a;

  while(scanf("%c",&a)!=EOF)

  //while((c=getchar())!=EOF)

   {

         putchar(a);

   }

  putchar(‘\n’);

  printf(“the end\n”);

}b78b7b08587e418a8309ef133b5b03b4.png

 连续输入字符,直到输入ctrl+z停止

比如说这道简单的题17aea719a4a84605b2d079e7f9d3876f.png

我们这样讲2d420c1d6a524f2d98bde93a1aed44de.png 

这里我只想说一点 

多层缩进的书写格式使程序层次分明,亲测有效

强行再插一条

d05fea85c3ad46b2bb5fc685770f54ba.png

4f7ff3974f4b4281a18c90a23a777b82.png 

这一点可以用接下来要讲的 switch case语句来解决 

而switch case语句呢,则是一种特殊的分支结构

switch (表达式) { 
     case 常量表达式1:
            语句1;  
            break;
     case 常量表达式2:
            语句2; 
           break;
     … 
     case 常量表达式n:
           语句n;  
           break;
     default:  
            语句n+1; 
           break;
}

point:

1 switch结构中只能根据表达式的值进行选择入口
              ps:case x:仅仅是一个入口.
2:switch结构中不能漏过初始化,要不然会出现警告.

3:主要break的增添

28616c00eccd403db55a5ba8154de79c.png8b0e226f6ff54bc4830b0ff5ff1a7bd2.png

举个简单的栗子🌰 

 

#include <stdio.h>
int main (void)
{   int choice, i;   double price;
    printf ("[1] Select crisps \n");
    printf ("[2] Select popcorn \n");
    printf ("[3] Select chocolate \n");
    printf ("[4] Select cola \n");
    printf ("[0] exit \n"); 
    for( i = 1; i <= 5; i++) {
        printf ("Enter choice: ");
        scanf ("%d", &choice);
        if (choice == 0) break; 
        switch (choice) {         
           case 1: price = 3.0; break;
           case 2: price = 2.5; break;
           case 3: price = 4.0; break;
           case 4: price = 3.5; break;
           default: price = 0.0; break;
        }
        printf ("price = %0.1f\n", price);  
    }
    printf ("Thanks \n"); 
}

 

👍这就很nice!

当然上述两种表达都是可以用的比如说这道题754cc611a6174770bbcaae9bdc56f922.png

 用个小小的if else语句

#include<stdio.h>
int main (void)
{
    int a, b, c, d, e, f, g;
    scanf("%d %d %d", &a, &b, &c);
    e=a%4;
    f=a%100;
    g=a%400;
    if((e==0 && f!=0)||(g==0))
    {
        if(b==1)
        {
            d=31-c+29+31+30+31+30+31+31+30+31+30+31;
            printf("%d", d);
        }
        else if(b==2)
        {
            d=29-c+31+30+31+30+31+31+30+31+30+31;
            printf("%d", d);
        }
        else if(b==3)
        {
            d=31-c+30+31+30+31+31+30+31+30+31;
            printf("%d", d);
        }
        else if (b==4)
        {
            d=30-c+31+30+31+31+30+31+30+31;
            printf("%d", d);
        }
        else if(b==5)
        {
            d=31-c+30+31+31+30+31+30+31;
            printf("%d", d);
        }
        else if(b==6)
        {
            d=30-c+31+31+30+31+30+31;
            printf("%d", d);
        }
        else if(b==7)
        {
            d=31-c+31+30+31+30+31;
            printf("%d", d);
        }
        else if(b==8)
        {
            d=31-c+30+31+30+31;
            printf("%d", d);
        }
        else if(b==9)
        {
            d=30-c+31+30+31;
            printf("%d", d);
        }
        else if(b==10)
        {
            d=31-c+30+31;
            printf("%d", d);
        }
        else if(b==11)
        {
            d=30-c+31;
            printf("%d", d);
        }
        else if(b==12)
        {
            d=31-c;
            printf("%d", d);
        }
    }
    else
    {
        if(b==1)
        {
            d=31-c+28+31+30+31+30+31+31+30+31+30+31;
            printf("%d", d);
        }
        else if(b==2)
        {
            d=28-c+31+30+31+30+31+31+30+31+30+31;
            printf("%d", d);
        }
        else if(b==3)
        {
            d=31-c+30+31+30+31+31+30+31+30+31;
            printf("%d", d);
        }
        else if (b==4)
        {
            d=30-c+31+30+31+31+30+31+30+31;
            printf("%d", d);
        }
        else if(b==5)
        {
            d=31-c+30+31+31+30+31+30+31;
            printf("%d", d);    
        }
        else if(b==6)
        {
            d=30-c+31+31+30+31+30+31;
            printf("%d", d);
        }
        else if(b==7)
        {
            d=31-c+31+30+31+30+31;
            printf("%d", d);
        }
        else if(b==8)
        {
            d=31-c+30+31+30+31;
            printf("%d", d);
        }
        else if(b==9)
        {
            d=30-c+31+30+31;
            printf("%d", d);
        }
        else if(b==10)
        {
            d=31-c+30+31;
            printf("%d", d);
        }
        else if(b==11)
        {
            d=30-c+31;
            printf("%d", d);
        }
        else if(b==12)
        {
            d=31-c;
            printf("%d", d);
        }
    }

    
    return 0;
}

而我们另一种小小的switch case语句

#include<stdio.h>

int main()
{
    int a,b,c,x,y;
    scanf("%d%d%d",&a,&b,&c);
    if((a%4==0&&a%100!=0)||a%400==0){
    switch(b){
    case 1:x=29+31*6+30*4,y=31-c;break;
    case 2:x=31*6+30*4,y=29-c;break;
    case 3:x=31*5+30*4,y=31-c;break;
    case 4:x=31*5+30*3,y=30-c;break;
    case 5:x=31*4+30*3,y=31-c;break;
    case 6:x=31*4+30*2,y=30-c;break;
    case 7:x=31*3+30*2,y=31-c;break;
    case 8:x=31*2+30*2,y=31-c;break;
    case 9:x=31*2+30*1,y=30-c;break;
    case 10:x=31*1+30,y=31-c;break;
    case 11:x=31,y=30-c;break;
    case 12:x=0,y=31-c;break;
    }
    }else{
    switch(b){
    case 1:x=28+31*6+30*4,y=31-c;break;
    case 2:x=31*6+30*4,y=28-c;break;
    case 3:x=31*5+30*4,y=31-c;break;
    case 4:x=31*5+30*3,y=30-c;break;
    case 5:x=31*4+30*3,y=31-c;break;
    case 6:x=31*4+30*2,y=30-c;break;
    case 7:x=31*3+30*2,y=31-c;break;
    case 8:x=31*2+30*2,y=31-c;break;
    case 9:x=31*2+30*1,y=30-c;break;
    case 10:x=31*1+30,y=31-c;break;
    case 11:x=31,y=30-c;break;
    case 12:x=0,y=31-c;break;    
    }
}
    printf("%d",x+y);
    return 0;
}

不过于我个人还是比较喜欢if else语句的,我jio得它的逻辑性比较强👍

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Ryan-%

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值