在switch语句中,如果找到了满足的case情况,是不是就不再看之后的case而直接执行其所属的语句啊,直到遇到break或者switch结束?没理解错吧?
#include <stdio.h>
int main()
{
int i = 2;
int j;
printf("请输入j的值:\n");
scanf("%d", &j);
switch (j)
{
case 1:
printf("%d\n", i);
case 'T':
printf("%d\n", i + 1);
j++;
break;
printf("这个语句不再执行!~\n");
case 2:
printf("%d\n", i + 2);
case '3':
printf("%d\n", 2 * j + 3);
default:
i--;
printf("今天是周日!\n");
case 5:
printf("%d", i + 4);
break;
case '6':
printf("%d", i + i);
}
/*
1>在switch语句中,若case后面没有加break语句,则会从允许进行的语句开始,不再判断情况而直接执行后面的语句,
直到执行到break语句(包含default语句中的break)或者执行完所有语句后跳出switch。
2>所有语句只会执行一次,而不会因为default语句没有加break而继续执行default语句直到满足后面情况。
*/
int c = 0, k;
for (k = 1; k < 3; k++)
switch (k)
{
default:
c += k;
case 3:
c++;
break;
case 4:
c += 2;
break;
}
/*
c = 0;
k = 1, c = 1,执行case 3, c = 2;
k = 2, c = 4,执行case 3, c = 5;
*/
printf("%d", c);
return 0;
}
#include <stdio.h>
int main() {
int a;
while(scanf("%d", &a) != EOF) {
switch(a) {
case 1:
printf("一");
break;
case 10:
printf("十");
break;
case 100:
printf("百");
break;
case 1000:
printf("千");
break;
case 10000:
printf("万");
break;
default:
printf("无法识别");
}
printf("\n");
}
return 0;
}
default:
分支。🙉饭不食,水不饮,题必须刷🙉 C语言免费动漫教程,和我一起打卡! 🌞《光天化日学C语言》🌞 LeetCode 太难?先看简单题! 🧡《C语言入门100例》🧡 数据结构难?不存在的! 🌳《数据结构入门》🌳 LeetCode 太简单?算法学起来! 🌌《夜深人静写算法》🌌
题主理解正确。