C語言switch訓練題(在線等)下列選項中屬于正確的switch語句的是---
正確的是bswitch( 表達式)//這個地方不能加分號,表達式必須是字符型或整型{ case E1 : 語句組 1; //case 與E1(即常量)之間用空格分隔 case E2 : 語句組 2;// case后的常量不能相同且常量后必須加冒號 ……. case En : 語句組 n; [default: 語句組 ;]} 執行過程:一、計算二、找case三、從找到的case開始,往下全部執行四、若沒找到case,則從default開始往下全部執行, 若沒default則結束switch語句。
C語言程序SWITCH語句
樓主好,樓上的哥們好!
樓上的兩位哥們都是直接把x當整型處理的,樓主并沒有說x是整型啊,對不對?
這是我的程序:
#include <stdio.h>
main()
{
double x,y;
int a;
scanf("%lf",&x);
a=(int)x; /*將x的值強制轉換為整形,也就是截去小數點后面的,賦給a*/
switch(a)
{
case -4:y=x-1;break;
case -3:y=x-1;break;
case -2:y=x-1;break;
case -1:y=x-1;break;
/*********************
其實上面這一段可以寫成這樣
case -4:
case -3:
case -2:
case -1:
y=x-1;break;
簡化程序
下邊這段也同理。.
***********************/
case 7:y=x+1;break;
case 6:y=x+1;break;
case 5:y=x+1;break;
case 4:y=x+1;break;
case 3:y=x+1;break;
case 2:y=x+1;break;
case 1:y=x+1;break;
case 0:y=x;break;
default:printf("Input Error\n");goto loop;
}
printf("x=%lf\ny=%lf\n",x,y);
loop:;
getch();
}
這樣不管你輸入是整數還是浮點數都行啦。.
其實一樓的哥們的方法超好啊。如果把int x,y改成double x,y就完美了..(這好像不是個問題。..)
程序我測試過了,沒發現問題。(餓只是說餓沒有發現問題,誰發現的問題快點指正!!!)
====================================
lipbb說的很對,上面我寫的程序確實有錯誤。.懶得改了。..這是我想的另一個方法:
用switch嵌套,餓測試過了,沒發現問題。(餓只是說餓沒有發現問題,誰發現的問題快點指正!!!)
#include <stdio.h>
main()
{
double x,y;
printf("please input x\n");
scanf("%lf",&x);
switch(-5<x&&x<0)
{
case 1:y=x-1;break;
case 0:
{
switch(x==0)
{
case 1:y=x;break;
case 0:
{
switch(0<x&&x<8)
{
case 1:y=x+1;break;
case 0:printf("Input Error\n");goto loop;
}
}break;
}
}break;
}
printf("x=%lf\ny=%lf",x,y);
loop:;
getch();
}
樓主有不明白的地方可以給我留言。
有關C的switch```````case語句
用switch`````case來做的話,應該是這種情況了;
int a ;
switch ( a )
{
case 1:
fun1();
break;
case 2:
fun2();
break;
case 3:
fun3();
break;
。
default:
fun();
break;
}
如果a=1的話,執行fun1(),并跳出switch。case;
如果a=2的話,執行fun2(),并跳出switch。case;
如果a=3的話,執行fun3(),并跳出switch。case;
當沒有與a相等的值時,執行fun(),然后跳出switch。case
以上是每一個case加了break的情況,如果沒有加break,那么:
如果a=1的話,執行fun1(),再執行fun2()和fun3();
如果a=2的話,執行fun2(),再執行fun3();
如果a=3的話,執行fun3(),再執行fun();
當沒有與a相等的值時,執行fun(),然后跳出switch。case
也就是說switch是依次判斷表達式a的值是否與改case語句給的值相等,如果相等就執行改case語句相應的代碼,然后跳出switch。case(有break的時候).(沒有break的時候是,執行完改case對應的代碼后,再依次向下執行其它的case語句的代碼).
轉載請注明出處華閱文章網 » c的switch語句