例如:
if(input>90) .... else if(input>80) ... else if(input>70) ... else ...當下的回答是"不行"
因為我的概念裡一直認為switch/case只能做"相等"的判斷
最近用到conditional operator,突然想到其實是有可能的
程式碼如下:
應用就多啦 目前還沒有想到什麼if/else能做到而這樣做不到的
也許各位大大能幫我點出來
雖然對於架構本身似乎沒什麼幫助,可是看起來還滿酷的
樂趣可能就來自這種無聊的小事吧XD
4 則留言:
我想到了! 用C內建的 "..."
其實就是va_list啦 ~
#include
int main ( void) {
int n;
while( 1) {
scanf("%d", &n);
if( n < 0) break;
switch( n) {
case 0 ... 9 :
printf("%d: 1 digit number\n", n);
break;
case 10 ... 99 :
printf("%d: 2 digit number\n", n);
break;
case 100 ... 999 :
printf("%d: 3 digit number\n", n);
break;
default:
printf("out of range!\n");
break;
}
}
return 0;
}
第一次看到這種用法XD
原來又是個C99...
http://stackoverflow.com/questions/7043788/are-triple-dots-inside-a-case-case-0-9-valid-c-language-switch-syntax
而且跟va_list好像是不一樣的東西@@
http://gcc.gnu.org/onlinedocs/gcc-4.1.2/gcc/Case-Ranges.html
被自己誤導啦 XD
張貼留言