条件语句if与switch

先前通过if-else语句编写了下列根据情况选择不同计算公式的代码,今天在课堂上见到了多分枝switch-case的语句,便将其进行了更改。

#include<stdio.h>
#include<math.h>
int main()
{int a;
float r,c,s,v;
printf("请输入圆的半径:");
scanf("%f",&r);
printf("\n求圆的周长请输入1\n求圆的面积请输入2\n求球的面积请输入3\n求球的体积请输入4\n");
scanf("%d",&a);
    if(a==1)
    {
        c=2*3.14*r;
        printf("圆的周长为:%.2f",c);
    }
    else
    {
        if(a==2)
        {
            s=3.14*pow(r,2);
            printf("圆的面积为:%.2f",s);
        }
        else
        {
            if(a==3)
            {
            s=4*3.14*pow(r,2);
            printf("球的面积为:%.2f",s);
            }
            else
            {
                v=3*3.14*pow(r,3)/4;
                printf("球的体积为:%.2f",v);
            }
        }
    }
    
return 0;
 } 

更改后的语句:

#include<stdio.h>
#include<math.h>
int main()
{int a;
float r,c,s,v;
printf("请输入圆的半径:");
scanf("%f",&r);
printf("\n求圆的周长请输入1\n求圆的面积请输入2\n求球的面积请输入3\n求球的体积请输入4\n");
scanf("%d",&a);
    switch(a)
{
    case 1:
    {
    c=2*3.14*r;
    printf("圆的周长为:%.2f",c);
    }
    break;
        
        
        case 2:
        {
            s=3.14*pow(r,2);
            printf("圆的面积为:%.2f",s);
        }
            break;
            
            
                case 3:
                {
                s=4*3.14*pow(r,2);
                printf("球的面积为:%.2f",s);
                }
                break;
                
                
                    case 4:
                    {
                    v=3*3.14*pow(r,3)/4;
                    printf("球的体积为:%.2f",v);
                    }
                    break;
default:
printf("error");
}    
    
return 0;
 } 

 更改时,鉴于if-else的用法(if、else后若有多条执行语句,若不在其后加上{}便只会执行第一条命令)便在case后也加上了{},但通过自己的测试,发现case后不加{}也能把case-break之间的命令全部执行

这里单独说一下我总结的if-else和switch-case:

if-else:

if(条件语句)

{

命令1;

命令2;

}

else

{

命令3;

命令4;

}

此时条件满足则执行命令1和命令2;若条件不满足则执行命令3和命令4,但如果不加上{}呢?

if(条件语句)

命令1;

命令2;

else

命令3;

命令4;

命令5;

此时编译会显示'else' without a previous 'if',如若删除命令2,条件满足则执行命令1,不满足则执行命令3、命令4及命令5.

如若需要命令5无论满足条件与否都要执行,那么需要将命令3和命令4用花括号括起来;同理,只将命令3括起来那么无论满足组条件与否都会执行命令4和命令5.

switch-case:

switch(判断依据)

{

case 语句1:

命令1;

命令2;

break;

case 语句2:

命令3;

命令4;

default:

printf(“error");

}

此时判断依据满足语句1则执行命令1和命令2;若判断语句满足语句2则执行命令3和命令4;若将命令1和命令2用{}括起来,命令3和命令4也用{}括起来:

switch(判断依据)

{

case 语句1:

{

命令1;

命令2;

}

break;

case 语句2:

{

命令3;

命令4;

}

default:

printf(“error");

}

此时执行结果与没加{}的结果一致!

注意:switch下边的所有case和default及其执行语句都要用{}括起来!

注:switch的判断依据可以进行算术运算:如switch(a/10)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Traveler·玖安

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

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

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

打赏作者

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

抵扣说明:

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

余额充值