iT邦幫忙

2021 iThome 鐵人賽

DAY 15
1

switch 是 C 提供的另一種條件判斷的方式(python 沒有的 !),本身只能比較數字字元。但如果使用適當的話,或許比 if 更有效率。

switch的語法會長這樣:

switch(expression)
{
    case constant1:
        statements1;
        break;
    case constant2:
        statements2;
    ...
    default:
        default statements;
}

一開始,會先看看 switch 括號中的 expression,得到 expression 的數值(或字元)後,會一一與 case 設定的數字(或字元)比較,如果符合,就會執行以下的 statement,直到遇到 break 後才會離開 switch 的區塊。如果都沒有符合的數值(或字元),就會執行 default 裡的 statements。default 是可以省略的!
或許這樣講解還有點籠統,我們用程式碼來講一次!

#include<stdio.h>
int main(){
	float a, b;
	char c;
	printf("輸入兩個數字 運算方法>>");
	scanf("%f %f %c", &a, &b, &c);
	switch(c){
		case '+':
			printf("a+b=%.2f", a + b);
			break;
		case '-':
			printf("a-b=%.2f", a - b);	
			break;
		case '*':
			printf("a*b=%.2f", a * b);
			break;
		case '/':
			printf("a/b=%.2f", a / b);
			break;
		default:
			printf("輸入錯誤");
		
	}
	return 0;
}

輸出結果:


這個程式,是輸入兩個數字,並可以決定對這兩個數字做甚麼運算。
首先,我們會輸入兩個數字以及一個運算方式(+-*/),運算方式是一個字元,被存在變數 c 中。
然後,我們再用 switch 判斷 c 是甚麼字元,並做出相對應的運算,如果不是四則運算的字元,我們輸出"輸入錯誤"來提醒使用者。
switch 裡面的 break 值得我們拿出來討論一下~

break

在 C 語言中 break 有兩種用法:

  1. 一個迴圈(loop)裡面如果遇到 break,迴圈立刻終止。(迴圈的部分以後會再說明)
  2. 終止 switch 語句
    如果上面的 switch 程式的 case 中沒有了 break 會怎麼樣呢?
    他就會找到符合條件後,從那裏開始往下執行!
    如果把上面程式碼 break 刪掉後:
#include<stdio.h>
int main(){
	float a, b;
	char c;
	printf("輸入兩個數字 運算方法>>");
	scanf("%f %f %c", &a, &b, &c);
	switch(c){
		case '+':
			printf("a+b=%.2f", a + b);
			
		case '-':
			printf("a-b=%.2f", a - b);	
		case '*':
			printf("a*b=%.2f", a * b);
		case '/':
			printf("a/b=%.2f", a / b);
		default:
			printf("輸入錯誤");
		
	}
	return 0;
}

輸出結果:

今天講完了 switch,明天要開始進入迴圈單元了~


上一篇
【Day 14】if 條件的範例講解
下一篇
【Day 16】for 迴圈
系列文
C 語言的簡單入門30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言