刚开始c语言学到这个switch语句标准输入输出库好像出了点小问题不知道是怎么个情况望解答
供参考:
第一 你用的switch...case 还需要有一个default作为标准的switch结构
第二 你用的printf好像是要加双引号
swith语句也是一种分支语句,常常用于多分支的情况。
swith语句的结构是:
switch(整形表达式
{
语句项;
}
语句项是什么呢?
是一些case语句:
case 整型常量表达式:
语句;
例:输入1-7的数字,分别代表对应的星期。那用ifelse语句会比较麻烦,那我们就得有不一样的语法格式,这里运用的就是swith语句。
如下图一,运用switch语句写出,可以看到当我输入1的时候,输出了星期一,但是也继续输出到星期天的值。是因为case 1语句执行完,没有阻止语句停下来,语句会一直执行,直到把case语句执行完。当输入2,是什么结果。结果如下图2,可以看到当输入2的时候,语句从case 2进去,跳过case 1。switch后面的表达式结果是几,就会从case 几进去。
那我们要达到分支的结果,就必须有入口和出口,case决定入口,那出口,我们可以加上break,break叫跳出,停止。那我们在每一个case后面加上break,看看效果是什么。可以看到图三,当我输入1,结果就是星期一。
图一
图二
图三
case后面的break不是必须要加的,按题目的需求来加。break语句的实际效果是把语句划分成不同的部分。
例:现在输入1-5是工作日,6-7是休息日。
default子句
当表达的值与所有的case标签的值都不匹配。所有的语句都被跳过,程序结果不会报错,但是,不想忽略不匹配所有标签的表达式的值时,我们可以增加一条default子句。
default子句可以放在switch语句中的任意位置 。但默认在所有case语句之后。