當前位置:首頁 » 編程語言 » c語言中switch語句

c語言中switch語句

發布時間: 2023-01-26 06:58:57

A. c語言 switch的用法

switch用在編程中,如C語言中它經常跟case一起使用,是一個判斷選擇代碼。其功能就是控制業務流程流轉的。

C語言程序語句switch語句的語法如下(switch,case和default是關鍵字):

switch ( controllingExpression )

{

case constantExpression1 :

case constantExpression2 :

case constantExpression3 :

statements;

//當滿足constantExpression1、constantExpression2、constantExpression3任何一個都執行statements

break;

case constantExpression :

statements ;

break;

...

default :

statements ;

break;

}

(1)c語言中switch語句擴展閱讀:

Switch在一些計算機語言中是保留字,其作用大多情況下是進行判斷選擇。以C語言來說,switch(開關語句)常和case break default一起使用。

遵守switch語句規則

switch語句非常有用,但在使用時必須謹慎。所寫的任何switch語句都必須遵循以下規則:

只能針對基本數據類型中的整型類型使用switch,這些類型包括int、char等。對於其他類型,則必須使用if語句。

switch()的參數類型不能為實型 。

case標簽必須是常量表達式(constantExpression),如42或者'4'。

case標簽必須是惟一性的表達式;也就是說,不允許兩個case具有相同的值。

B. C語言switch語句

switch結構的一般形式是;
switch(表達式)
{
case(必須為常量):語句1;break;
case(同上):語句2;break;
case(同上):語句3;break;
……
……
case(同上):語句n;break;
default:語句n+
其中
break可以不要,但如果你不加,那麼如果執行到沒有加break那一句後不跳出case而繼續執行緊跟其後的case或default

C. c語言swich語句

C語言中選擇結構分為if語句和switch語句兩種,兩種語句均可以依據條件不同而選擇執行不同的語句塊,但switch語句更多地應用於多分支結構。對於switch語句你都學會使用了嗎?本文將總結switch語句基本用法及使用技巧,希望能給大家提供參考。
1、 switch語句基本用法
C語言中,switch語句是一種多分支選擇語句,在實際應用中,要在多種情況中選擇一種情況,執行某一部分語句。
其使用一般形式如下:
switch(表達式)
{
case 常量表達式1:
語句塊1;
break;
case 常量表達式2:
語句塊2;
break;
……
case 常量表達式m:
語句塊m;
break;
default:
語句塊n;
break;
}
使用說明如下:
1) 程序執行時,首先計算表達式的值,與case後面的常量表達式值比較,若相等就執行對應部分的語句塊,執行完後利用break語句跳出switch分支語句。若表達式的值與所有的case後的常量表達式均不匹配,則執行default項對應的語句n,執行後跳出switch分支語句。
2) case後面的常量表達式只能是整型、字元型或枚舉型常量的一種;各case語句表達式的值各不相同,只起到一個標號作用,用於引導程序找到對應入口。
3) 這里的語句塊可以是一條語句,或其它復合語句。語句塊可以不用花括弧「{}」。
4) 各個case語句並不是程序執行的終點,通常需要執行break語句來跳出switch分支語句;若某case語句的語句塊被執行後,若其後沒有break語句,則順序執行其它case語句,直到遇到break語句或後面所有case語句全部執行完,再跳出switch分支語句。
5) 多個case可以共用一組執行語句塊。
6) 各個case和default出現的先後次序,並不影響執行結果。
7) default語句不是必須的,但建議加上作為默認情況處理項。
8) switch語句僅做相等性檢測,不能像if語句那樣做關系表達式或邏輯表達式計算,進行邏輯真假判斷。
2、 switch語句使用技巧
1) 盡量減少case語句數量
C語言C89標准指出,一個switch語句至少應支持257個case語句;而在C99標准中分支個數要求提升至1023個。在實際編程開發應用中,為了提高程序可讀性與執行效率,應盡量減少case語句的數量。盡量將長的switch語句轉換為嵌套的switch語句,即可以將高頻執行的語句放在一個case語句中,作為嵌套switch語句的最外層;把執行頻率較低的case語句放在另一個switch語句中,放置於嵌套switch語句的內層。
2) case語句結尾勿忘加break語句
在switch語句中,每個case語句的結尾不要忘記添加break語句,否則將導致多個分支重疊,除非有意而為之。
3) 注意case語句的排序
通常按照字母或數字順序來排序;若switch語句存在多個情況正常和異常的語句,應盡量將情況正常的語句排在前面;另外也可以根據執行頻率來排序,如果能預測出每條case語句的大概執行頻率,可以將頻率最高的語句排在前面。

D. c語言中switch語句怎麼使用

代碼如下:

#include "pch.h"

#include <iostream>

#include <functional>

#include <map>

#include <string>

using namespace std;

int add(int i, int j)

{

return i + j;

}

// 使用函數調用運算符

struct divide

{

int operator()(int i, int j)

{

return i / j;

}

};

auto mod = [](int i, int j) {return i % j; };

map<string, function<int(int, int)>> binops =

{

{"+", add}, // 使用函數指針

{"-", minus<int>()}, // 使用標准庫函數對象

{"*", [](int i, int j) {return i * j; }}, // 使用未命名的lambda表達式

{"/", divide()}, // 使用函數調用運算符

{"%", mod} // 命名了的lambda表達式

};

int main()

{

int num1, num2;

string s;

while (cin >> num1)

{

cin >> s >> num2;

cout << num1 << s << num2 << "=" << binops[s](num1, num2) << endl;

}

return 0;

}

(4)c語言中switch語句擴展閱讀

Switch用在編程中,如C語言中它經常跟Case一起使用,是一個判斷選擇代碼。其功能就是控制流程流轉的。

直線翻譯:switch語句,即「切換」語句;case即「情況」。

switch語句的語法如下(switch,case,break和default是關鍵字):

switch ( 變數表達式 )

{

case 常量1 :語句;break;

case 常量2 :語句;break;

case 常量3 :語句;break;

...

case 常量n:語句;break;

default :語句;break;

}

當變數表達式所表達的量與其中一個case語句中的常量相符時,就執行此case語句後面的語句,並依次下去執行後面所有case語句中的語句,除非遇到break;語句跳出switch語句為止。如果常量表達式的量與所有case語句的常量都不相符,就執行default語句中的語句。

E. C語言中的SWITCH是什麼意思

1、SWITCH語句的字面意思是開關,是用來進行多重選擇。具體的用法首先打開C-Free5.0軟體,然後新建一個名為switch.c文件,然後在引入頭文件和main主函數:

F. switchc語言的用法

c語言switch的用法如下:

1、在一個 switch 中可以有任意數量的 case 語句。每個 case 後跟一個要比較的值和一個冒號。

2、case 後的類型必須與 switch 中的變數具有相同的數據類型,且必須是一個常量或字面量。

3、當被測試的變數等於 case 中的常量時,case 後跟的語句將被執行,直到遇到break語句為止。

4、當遇到break語句時,switch 終止,控制流將跳轉到 switch 語句後的下一行。

5、不是每一個 case 都需要包含break。如果 case 語句不包含break,控制流將會繼續後續的 case,直到遇到 break 為止。

6、一個switch語句可以有一個可選的defaultcase,出現在 switch 的結尾。default case 可用於在上面所有 case 都不為真時執行一個任務。default case 中的break語句不是必需的。

7、一個switch語句允許測試一個變數等於多個值時的情況。每個值稱為一個 case,且被測試的變數會對每個switch case進行檢查。

G. c語言中switch怎麼用

簡單的說switch語句也是屬於判斷語句,if else語句適合3個以內的判斷,但是多了用if就不太方便了,所以這時3個以上的判斷用switch語句就比較方便了,結構就像樓上的兄弟們那樣寫的,大概怎麼用我舉個例子你就懂了。

例:判斷一周的食譜,就是星期幾的食譜是什麼,首先一個星期7天,那麼判斷七次,用switch語句寫法如下:

#include<stdio.h>

void main()
{

int a;//定義變數用於開辟1到7的數字即一星期的天數。

printf("看看星期幾的食譜是什麼?");

scanf("%d",&a);

switch(a)//開始判斷1-7的食譜。

{

case 1:printf("星期一吃水果 ");

break;//結束語句,判斷這天後提示完就不執行下面的語句了,否則邏輯錯誤。

case 2:printf("星期二吃蔬菜 ");

break;

case 3:printf("星期三吃火鍋 ");

break;

case 4:printf("星期四吃米飯 ");

break;

case 5:printf("星期五吃西餐 ");

break;

case 6:printf("星期六吃米飯 ");

break;

case 7:printf("星期天吃滿漢全席 ");

break;

default:printf("請輸入正確的日期 ");//default語句類似else,如果不輸入1到7的正確日期就顯示這個語句。

break;
}

}

(7)c語言中switch語句擴展閱讀

if 語句:「如果」語句;if—else 語句:「若?(則)?否則?」語句;switch 語句:「切換」語句;switch—case:「切換—情況」語句。

跳轉結構

return:用在函數體中,返回特定值(如果是void類型,則不返回函數值)。(K&R時期引入)

continue:結束當前循環,開始下一輪循環。(K&R時期引入)

break:跳出當前循環或switch結構。(K&R時期引入)

goto:無條件跳轉語句。(K&R時期引入)

分支結構

if:條件語句,後面不需要放分號。(K&R時期引入)

else:條件語句否定分支(與if連用)。(K&R時期引入)

switch:開關語句(多重分支語句)。(K&R時期引入)

case:開關語句中的分支標記,與switch連用。(K&R時期引入)

default:開關語句中的「其他」分支,可選。(K&R時期引入)

H. c語言中switch的用法 c語言中switch怎麼使用

1、在switch語句的每個語句段中都使用break語句。有default時,如果表達式的值與任何一個常量表達式的值都不想等,則執行default後面的語句段。如果省略了default,那麼當表達式的值與任何一個常量表達式的值都不相等時,就什麼都不執行。

2、在switch語句中不使用break語句。在這種情況下,如果表達式的值與某個常量表達式的值相等,則執行該常量表達式後面的所有語句段,如果表達式的值與任何一個常量表達式的值都不相等,則執行default後的所有語句段。

3、在switch語句的某些語句段中使用break語句。

I. c語言switch語句格式

switch 是另外一種選擇結構的語句,用來代替簡單的、擁有多個分枝的 if else 語句,基本格式如下:
switch(表達式){
case 整型數值1: 語句 1;
case 整型數值2: 語句 2;
......
case 整型數值n: 語句 n;
default: 語句 n+1;
}
它的執行過程是:
1) 首先計算「表達式」的值,假設為 m。

2) 從第一個 case 開始,比較「整型數值1」和 m,如果它們相等,就執行冒號後面的所有語句,也就是從「語句1」一直執行到「語句n+1」,而不管後面的 case 是否匹配成功。

3) 如果「整型數值1」和 m 不相等,就跳過冒號後面的「語句1」,繼續比較第二個 case、第三個 case……一旦發現和某個整型數值相等了,就會執行後面所有的語句。假設 m 和「整型數值5」相等,那麼就會從「語句5」一直執行到「語句n+1」。

4) 如果直到最後一個「整型數值n」都沒有找到相等的值,那麼就執行 default 後的「語句 n+1」。

J. 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();
}
樓主有不明白的地方可以給我留言。

熱點內容
安卓手機如何關閉微信面容 發布:2023-02-09 10:01:00 瀏覽:118
電腦鍵盤俠伺服器 發布:2023-02-09 10:00:51 瀏覽:189
配置低玩游戲哪個系統更好 發布:2023-02-09 09:59:59 瀏覽:878
做數控編程工作怎麼樣 發布:2023-02-09 09:59:47 瀏覽:285
android取控制項id 發布:2023-02-09 09:54:41 瀏覽:593
sql循環for 發布:2023-02-09 09:51:59 瀏覽:517
java周記 發布:2023-02-09 09:46:19 瀏覽:78
列印九九乘法表c語言 發布:2023-02-09 09:42:01 瀏覽:539
w10搭建本地伺服器 發布:2023-02-09 09:41:10 瀏覽:756
生命周期java 發布:2023-02-09 09:38:28 瀏覽:512