switch
是 C 提供的另一种条件判断的方式(python 没有的 !),本身只能比较数字或字元。但如果使用适当的话,或许比 if
更有效率。
switch
的语法会长这样:
switch(expression)
{
case constant1:
statements1;
break;
case constant2:
statements2;
...
default:
default statements;
}
一开始,会先看看 switch
括号中的 expression,得到 expression 的数值(或字元)後,会一一与 case
设定的数字(或字元)比较,如果符合,就会执行以下的 statement,直到遇到 break
後才会离开 switch
的区块。如果都没有符合的数值(或字元),就会执行 default
里的 statements。default
是可以省略的!
或许这样讲解还有点笼统,我们用程序码来讲一次!
#include<stdio.h>
int main(){
float a, b;
char c;
printf("输入两个数字 运算方法>>");
scanf("%f %f %c", &a, &b, &c);
switch(c){
case '+':
printf("a+b=%.2f", a + b);
break;
case '-':
printf("a-b=%.2f", a - b);
break;
case '*':
printf("a*b=%.2f", a * b);
break;
case '/':
printf("a/b=%.2f", a / b);
break;
default:
printf("输入错误");
}
return 0;
}
输出结果:
这个程序,是输入两个数字,并可以决定对这两个数字做甚麽运算。
首先,我们会输入两个数字以及一个运算方式(+
、-
、*
、/
),运算方式是一个字元,被存在变数 c 中。
然後,我们再用 switch
判断 c 是甚麽字元,并做出相对应的运算,如果不是四则运算的字元,我们输出"输入错误"来提醒使用者。
switch
里面的 break
值得我们拿出来讨论一下~
break
在 C 语言中 break
有两种用法:
break
,回圈立刻终止。(回圈的部分以後会再说明)switch
语句switch
程序的 case
中没有了 break
会怎麽样呢?break
删掉後:#include<stdio.h>
int main(){
float a, b;
char c;
printf("输入两个数字 运算方法>>");
scanf("%f %f %c", &a, &b, &c);
switch(c){
case '+':
printf("a+b=%.2f", a + b);
case '-':
printf("a-b=%.2f", a - b);
case '*':
printf("a*b=%.2f", a * b);
case '/':
printf("a/b=%.2f", a / b);
default:
printf("输入错误");
}
return 0;
}
输出结果:
今天讲完了 switch,明天要开始进入回圈单元了~
<<: Day 30 结语和 Azure 的学习资源- 打完魔王之後的最终章通常是剧情动画
>>: Day 30:Google Map 结合口罩资料 & 铁人赛最後一天
大家好,我是长风青云。今天是铁人赛的20天,但我影片说错了QQ ...
前言 除了 EM segmentatation challenge 比赛之外,还有参加了另外一个比赛...
文字人脸效果 教学原文参考:文字人脸效果 这篇文章会介绍使用 GIMP 的图层混合功能,搭配文字输入...
先读References: 很酷的网页: https://www.sinotrade.com.tw/...
想要玩弄这两个attribute,就得对他们有所了解,否则玩得不尽兴,因为很有可能你设置了这两个属性...