c语言case接收字符,switch-case-break:字符释义 | 新思维:C语言程序设计
【問題:字符解釋】
從鍵盤輸入一個字符,當輸入的字符為“y”或“n”或“c”時,分別顯示“Yes”、“No”、“Cancel”,輸入其他字符時顯示“Illegal!”。
#include
int main(int argc, char *argv[])
{
char c=getchar();
switch(c) {
case 'y':
printf("Yes\n");
break;
case 'n':
printf("No\n");
break;
case 'c':
printf("Cancel\n");
break;
default:
printf("Illegal!\n");
break;
}
return 0;
}
#include
int main(int argc, char *argv[])
{
char c=getchar();
switch(c) {
case 'y':
printf("Yes\n");
break;
case 'n':
printf("No\n");
break;
case 'c':
printf("Cancel\n");
break;
default:
printf("Illegal!\n");
break;
}
return 0;
}
switch-case-break的基本結構如下:
switch()
{
case :
break;
case :
break;
default:
break;
}
switch()
{
case :
break;
case :
break;
default:
break;
}
【問題:字符解釋】
從鍵盤輸入一個字符,當輸入的字符為“Y”或“y”、“N"或“n”、"C"或“c”時,也就是說不區分大小寫,分別顯示“Yes”、“No”、“Cancel”,輸入其他字符時顯示“Illegal!”。
#include
int main(int argc, char *argv[])
{
char c=getchar();
switch(c) {
case 'y':
printf("Yes\n");
break;
case 'Y':
printf("Yes\n");
break;
case 'n':
printf("No\n");
break;
case 'N':
printf("No\n");
break;
case 'c':
printf("Cancel\n");
break;
case 'C':
printf("Cancel\n");
break;
default:
printf("Illegal!\n");
break;
}
return 0;
}
#include
int main(int argc, char *argv[])
{
char c=getchar();
switch(c) {
case 'y':
printf("Yes\n");
break;
case 'Y':
printf("Yes\n");
break;
case 'n':
printf("No\n");
break;
case 'N':
printf("No\n");
break;
case 'c':
printf("Cancel\n");
break;
case 'C':
printf("Cancel\n");
break;
default:
printf("Illegal!\n");
break;
}
return 0;
}
上面的代碼看著有點重復,能簡化一下嗎? 當然!
#include
int main(int argc, char *argv[])
{
char c=getchar();
switch(c) {
case 'y':
case 'Y':
printf("Yes\n");
break;
case 'n':
case 'N':
printf("No\n");
break;
case 'c':
case 'C':
printf("Cancel\n");
break;
default:
printf("Illegal!\n");
break;
}
return 0;
}
#include
int main(int argc, char *argv[])
{
char c=getchar();
switch(c) {
case 'y':
case 'Y':
printf("Yes\n");
break;
case 'n':
case 'N':
printf("No\n");
break;
case 'c':
case 'C':
printf("Cancel\n");
break;
default:
printf("Illegal!\n");
break;
}
return 0;
}
這里應用了switch-case中的穿透,意思是當跳轉到相應的分支后,只要沒遇到break,就一直往下執行!
在本例中,如果輸入字符 n,這個分支什么都沒做,由于沒有break,就繼續執行,所以無論輸入n還是N,執行的語句是一樣的。
switch考查兩點
所寫的任何switch語句都必須遵循以下規則:只能針對基本數據類型使用switch,這些類型包括int、char等; case標簽必須是常量表達式。
// 2012_03_C_21
#include
int main()
{
int s=0,n;
for(n=0; n<3; n++) {
switch(s) {
case 0:
case 1:
s+=1;
case 2:
s+=2;
break;
case 3:
s+=3;
default:
s+=4;
}
printf("%d,",s);
}
return 0;
}
// 2012_03_C_21
#include
int main()
{
int s=0,n;
for(n=0; n<3; n++) {
switch(s) {
case 0:
case 1:
s+=1;
case 2:
s+=2;
break;
case 3:
s+=3;
default:
s+=4;
}
printf("%d,",s);
}
return 0;
}
輸出:3,10,14,
總結
以上是生活随笔為你收集整理的c语言case接收字符,switch-case-break:字符释义 | 新思维:C语言程序设计的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: AI应用开发实战系列之三:手写识别应用入
- 下一篇: 软件工程 敏捷的酒后问答