1. 程式人生 > >Switch case break/ default總結

Switch case break/ default總結

1.寫switch case語句不加break會怎樣。switch case語句犯得錯誤:會犯這種錯誤,都是基礎不牢固導致的。但是這樣的錯誤卻花費了我數小時去debug.想來真是很讓人鬱悶。看一段程式碼:(不想看程式碼直接看後面總結)private void arrange() { switch (direction) { case 'U'        case'R':        case'D':        case'L':
 }在這個語句中,如果direction=U。那麼四個case語句都將執行。如果direction=R。將執行剩下三個語句。原因是switch語句原理是跳轉到caseX位置執行剩下的語句,直到最後或者遇見break為止。因此在每一條語句最後+break即可。
private void arrange() {    switch (direction) {        case 'U':  break;        case'R':   break;        case'D':  break;        case'L':   break;
 }這樣就能,每一個direction執行一步操作。當然還有 別的用法,比如一個direction,讓他可以執行兩條或者3條操作這種。

總結:
switch語句原理是跳轉到caseX位置執行剩下所有的語句(包括其他case裡面的),直到最後或者遇見break為止。因此在每一條語句最後+break即可。
因此不加break的話將會執行跳轉到的case本身以及以下所有的語句。

2.default 在語句中的位置和加不加break引發的結果

switch中的default,一般用在最後,表示非以上的任何情況下而發生的情況,
我們一般習慣在他的後面加上個break。但是,如果default不是在最後,
而是在前面或中間會發生什麼情況呢:
先看看default在句首的情況:
int i = 2;
switch (i) {
  default:
    System.out.println("default");
  case 0:
    System.out.println("0");
  case 1:
    System.out.println("1");
  case 2:
    System.out.println("2");
    break;
  case 3:
    System.out.println("3");
  case 4:
    System.out.println("4");
    break;
}
他的輸出結果是:2! 很明顯,不是先執行的default語句!
再看看下面語句:
int i = 8;
switch (i) {
  default:
    System.out.println("default");
  case 0:
    System.out.println("0");
  case 1:
    System.out.println("1");
  case 2:
    System.out.println("2");
    break;
  case 3:
    System.out.println("3");
  case 4:
    System.out.println("4");
    break;
}
他的輸出結果是:
default
0
1
2
出人意料!!從default開始向後執行!
再看看default在句中的情況:
int i = 2;
switch (i) {
  case 0:
    System.out.println("0");
  case 1:
    System.out.println("1");
    break;
  default:
    System.out.println("default");
  case 2:
    System.out.println("2");
    break;
  case 3:
    System.out.println("3");
  case 4:
    System.out.println("4");
    break;
}
結果是2!顯然還是沒執行default!
int i = 8;
switch (i) {
  case 0:
    System.out.println("0");
  case 1:
    System.out.println("1");
    break;
  default:
    System.out.println("default");
  case 2:
    System.out.println("2");
    break;
  case 3:
    System.out.println("3");
  case 4:
    System.out.println("4");
    break;
}
結果:
default
2
顯然是從default開始向後執行的!

從上面可以看出:
switch的執行是按照從小到大的順序執行的,最後執行default語句,
如果default後面帶有break,那麼程式就會正常跳出switch,否則,
程式會繼續向後執行switch語句!也就是說,不管default放在什麼
位置,它總是在最後一個處理,然後繼續向下處理!
所以,最後的處理辦法,避免出現以外結果的最好辦法就是每一個case

以及default語句都要加一個break!

default在switch開頭:

(1)若所有case都不滿足條件,則執行default,並執行default語句之後的case語句,直到break或結束,

(2)

default在switch中間:

若所有case都不滿足條件,同上,直接執行default語句,並執行default語句之後的case語句,直到break或結束,

(3)

default在switch末尾:

若所有case語句都不滿足條件,則執行default語句,結束;若有case滿足,則執行case語句直到遇到break或switch語句結束

相關推薦

Switch case break/ default總結

1.寫switch case語句不加break會怎樣。switch case語句犯得錯誤:會犯這種錯誤,都是基礎不牢固導致的。但是這樣的錯誤卻花費了我數小時去debug.想來真是很讓人鬱悶。看一段程式碼:(不想看程式碼直接看後面總結)private void arrange(

? 列舉 程式設計題#2:撥鍾問題(Coursera 程式設計與演算法 專項課程4;函式memcpy的用法,switch case break 語句!)

程式設計題#2:撥鍾問題 來源: POJ (Coursera宣告:在POJ上完成的習題將不會計入Coursera的最後成績。) 注意: 總時間限制: 1000ms 記憶體限制: 65536kB 描述 有9個時鐘,排成一個3*3的矩陣。

C語言中switch...case語句中break的重要性

不能 實現 比例 重要性 case語句 毫無 ... 應該 switch 在C語言中switch...case語句是經常用到的,下面我介紹一下在使用該語句時候需要註意的一個細節問題。話不多說,直接舉例子: 例子1: switch(fruit) { case 1:printf

【C】switch-case裏面,加或不加break的區別

執行 span pri ++ int code fault color case int test; test = 0; switch(test) {   case 0:     test++;     printf("value = 0"); // 打

switch語句break不能忘以及default不同位置的用法

public class Test{ public static void main(String[] args){ System.out.println("2 = "+ toNumberCase(2)); } }

switch-case語句裡面有return了 ,break還起作用嗎?該如何解決

switch-case語句裡面有return了 ,break還起作用嗎?switch-case語句裡面有return了   ,break還起作用嗎?     比如:                       switch(ID)                      

switch case語句不加break會怎樣。

在這個語句中,如果direction=U。那麼四個case語句都將執行。如果direction=R。將執行剩下三個語句。原因是switch語句原理是跳轉到caseX位置執行剩下的語句,直到最後或者遇見break為止。因此在每一條語句最後+break即可。

switch case default 語句的的使用以及注意事項

首先我們來看一下它們基本的定義 switch(表示式) {case 取值1:輸出語句;break;。。。。default:輸出語句;break; } 上面的執行流程是這樣的, 1.從switch語句開

switch case語句:從匹配處順序執行,直到遇到break或結束

Switch語句重點:從匹配處開始順序執行,直到遇到break或結束。(由此可知,新增break語句的重要) switch語句的基本形式 switch(表示式) { case 常量表達式1: 語句1 case常量表達式2: 語句2 . . . case常量表達式n: 語句n

switchcasedefault的順序

先來看幾個例項 1、     例項原始碼為: #include<stdio.h> int main() { int i = 2; switch (i) {

asp.net ashx處理程式中switch case的替代方案總結

目錄 1、用委託字典代替switch...case; 2、利用反射替代switch...case; 3、比較兩種方案 4、其他方案 5、說明 6、參考

switchcase 語句的用法

[] other sta rgs bsp str 復制代碼 ring 表達 public class Test7 { public static void main(String[] args) { int i=5; switch

【java】switch case支持的7種數據類型

包裝類 mac 打開 拆箱 創建 eval get trade ocs switch表達式後面的數據類型只能是byte,short,char,int四種整形類型,枚舉類型和java.lang.String類型(從java 7才允許),不能是boolean類型。 在網上看到

JS入門基礎(if else 與 switch case / node安裝)

json health 案例 js文件 動作 require 步驟 *** 命令 在 JavaScript 中,為不同的決定來執行不同的動作,我們可使用以下條件語句: if 語句 - 只有當指定條件為 true 時,使用該語句來執行代碼 if...else 語句 - 當條

loadrunner C語言switch case

ecc image save ase style get res cti src 1 Action() 2 { 3 char *p=NULL; 4 web_reg_find("Fail=NotFound", 5 "Search=A

Switch Case語句中多個值匹配同一個代碼塊的寫法

har com arch mssql pre html www ase cas switch ($p) { case ‘home‘: case ‘‘: $current_home = ‘current‘; break

if 和 switch...case 的區別

條件判斷語句 情況 log gpo pos clas 條件判斷 ase 區別 if 和 switch...case 都是條件判斷語句,它們主要有以下幾點區別: 在確切知道條件結果,並且結果有限下的條件下可以使用 switch...case, 在不能確切表示結果的情況下

JavaScript基礎知識(if、if else、else if、while、switch...case語句)

case語句 bubuko ... gpo 控制 java 包含 分享 if...else 13、語句 概念:就是分號(;) 代表一條語句的結束 習慣:一行只編寫一條語句;一行編寫多條語句(代碼可讀性較差) 語句塊:可以包含多條語句 "{ }"將多條語句包裹 u 條

Java中的switch-case語句

sub public return ID PE stat class a case cti class ArithmeticFunction {   public static int arithmetic(int a, int b, String operator) {

switch case 支持的 6 種數據類型!

cte 必須 tsa htm acl olt sin 數據類型 sta 有粉絲建議可以偶爾推送一些 Java 方面的基礎知識,一方面可以幫助一初學者,也可以兼顧中高級的開發者。 那麽今天就講一下 Java 中的 switch case 語句吧,有忘記的同學正好可以溫習一下。