java中switch的用法
java中switch的用法
首先從原理上來闡述這個問題:
switch(表達式)
{
case 常量表達式1:語句1;
。.
case 常量表達式2:語句2;
default:語句;
}
*t就是如果沒有符合的case就執行它,default并不是必須的.
*后的語句可以不用大括號.
*語句的判斷條件可以接受int,byte,char,short,不能接受其他類型.
4.一旦case匹配,就會順序執行后面的程序代碼,而不管后面的case是否匹配,直到遇見break,利用這一特性可以讓好幾個case執行統一語句.
原理歸原理,下面是幾個容易混淆的例子.
1.標準型(case后面都有break語句)
int i=3;
switch(i)
{
case 1:
*n(1);
break;
case 2:
*n(2);
break;
case 3:
*n(3);
break;
default:
*n("default");
break;
}
輸出結果:
3
2.特殊型1(不是完全有break語句,可以完成一些特殊應用)
int year=2005;
int month=3;
int day;
switch(month)
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
day=31;
break;
case 2:
day=28;
break;
case 4:
case 6:
case 9:
case 11:
day=30;
break;
}
這里 day=31;
3.特殊型2(default的位置)
int i=1;
switch(i)
{
case 1:
*n(1);
default:
*n("default");
case 2:
*n(2);
break;
case 3:
*n(3);
break;
}
輸出結果:
1
default
2
java中switch語句的用法
switch 語句的格式:switch ( 整型或字符型變量 ) { case 變量可能值1 : 分支一; break; case 變量可能值2 : 分支二; break; case 變量可能值3 : 分支三; break; 。
default : 最后分支; } 在 switch 的語法里,我們要學到4個關鍵字:switch、case 、break、default。在 switch ( 變量 ) 這一行里,變量只能是整型或字符型。
程序先讀出這個變量的值,然后在各個"case"里查找哪個值和這個變量相等,如果相等,就算條件成立,程序執行相應的分支,直到碰上break或者switch語句結束。了解一下switch,case,break,default的意思,對理解前面的一切也會有幫助,它們分別是:開關,情況,中斷,默認(值)。
那么用一句話套起來的說法就是:根據開關值的不同,執行不同的情況,直到遇上中斷;如果所有的情況都不符合開關值,那么就執行默認的分支。最后說一下關于switch中非常重要的幾個注意點。
第一、switch ( 整型或字符型變量 ) 中,變量的類型如文中所標,只能是整型和字符類型。它們包含 int,char。
當然無符類型或不同的長度整型(unsigned int,short,unsigned char)等都可以。另外,枚舉類型(enum)內部也是由整型或字符類型實現。
所以也可以。實型(浮點型)數就不行,如:float a = 0.123; switch(a) //錯誤!a不是整型或字符類型變量。
{ 。.} 第二、case 之后可以是直接的常量數值,如例中的1、2、3、4,也可以是一個使用常量計算式,如2+2等,但不能是變量或帶有變量的表達式,如 a * 2等。
當然也不能是實型數,如4.1,或2.0 / 2 等。switch(formWay) { case 2-1 : //正確 。
case a-2 : //錯誤 。 case 2.0 : //錯誤 。
} 另外,在case 與常量值之后,需要一個冒號,請注意不要疏忽。第三、break 的作用。
break 使得程序在執行完選中的分支后,可以跳出整個switch語句(即跳到switch接的一對{}之后),完成switch。如果沒有這個break,程序將在繼續前進到下一分支,直到遇到后面的break或者switch完成。
比如,假設現在程序進入case 1: 中的分支,但case 1 的分支這回沒有加break:case 1 : *n("您是通過搜索引擎來到本網站的。"); case 2 : *n("您是通過朋友介紹來到本網站的。
"); 那么,程序在輸出 "您是通過搜索引擎來到本網站的。" 之后,會繼續輸出case 2中的 "您是通過朋友介紹來到本網站的。
" 。請大家將前面實例中的代碼片段改為如下(紅色部分,即將所有的break都通過加//使之無效。)
: 。 case 1 : *n("您是通過搜索引擎來到本網站的。
" ); //break; case 2 : *n("您是通過朋友介紹來到本網站的。"); //break; case 3 : *n("您是通過報刊雜志來到本網站的。
"); //break; case 4 : *n("您是通過其它方法來到本網站的。"); //break; default : *n("錯誤的選擇!請輸入1~4的數字做出選擇。
"); 。運行后,結果會是如何?請大家動手試試,然后在作業中回答我。
第四、default是可選中,前面我們已經說過它的用處,及如果沒有default,程序在找不到匹配的case分支后,將在switch語句范圍內不做什么事,直接完成switch。大家也可以在實例中將default的代碼注釋掉,然后試運行,并且在選擇時輸入5。
。//default : //cout << "錯誤的選擇!請輸入1~4的數字做出選擇。
" << endl;。第五、必要時,可在各個case中使用{}來明確產生獨立的復合語句。
前面我們在講if。語句和其它流程控制語句時,都使用{}來產生復合語句:if (條件) { 分支一; } 除非在分支中的語句正好只有一句,這里可以不需要花括號{}。
但在switch的各個case語句里,我們在語法格式上就沒有標出要使用{},請看:switch ( 整型或字符型變量 ) { case 變量可能值1 : 分支一; break; case 變量可能值2 : 。.} 一般教科書上只是說 case 分支可以不使用{},但這里我想提醒大家,并不是任何情況下case分支都可以不加{},比如你想在某個case里定義一個變量:switch (formWay) { case 1 : int a=2; //錯誤。
由于case不明確的范圍,編譯器無法在此處定義一個變量。 。
case 2 : 。} 在這種情況下,加上{}可以解決問題。
switch (formWay) { case 1 : { int a=2; //正確,變量a被明確限定在當前{}范圍內。 。
} case 2 : 。}。
JAVA中的switch語句是干什么用的啊?條件語句又是指什么? 問
Switch 語句用于將一個表達式的值同許多其他值比較,并按比較結果選擇下面執行哪些語句,Switch語句的使用格式如下:
switch(表達式)
{
case1:
語句塊1
Break;
casen:
語句塊n
Break;
default:
語句塊n+1
Break;
}
例如 我們要將1~3對應的星期幾的英文單詞打印出來,程序代碼如下:
int x=2;
switch(x)
{
case 1:
*n("Monday");
break;
case 2:
*n("Tuesday");
break;
case 3:
*n("Wedensday");
break;
default:
*n("sorry,i have no idea!");
}
因為x=2
所以結果就是
Tuesday
希望這些能幫助你理解!祝你JAVA越學越好
什么是Java編程switch語句
switch語句 switch關鍵字的中文意思是開關、轉換的意思,switch語句在條件語句中特別適合做一組變量相等的判斷,在結構上比if語句要清晰很多。
switch語句的語法格式為: switch(表達式){ case 值1: 功能代碼1; [break;] case 值2: 功能代碼2; [break;] …… default: 功能代碼1; [break;] } 語法說明: 1、 表達式的類型只能為byte、short、char和int這4種之一。 2、 值 1、值2…值n只能為常數或常量,不能為變量。
3、 功能代碼部分可以寫任意多句。 4、 break關鍵字的意思是中斷,指結束switch語句,break語句為可選。
5、 case語句可以有任意多句,是標號語句。 6、 default語句可以寫在switch語句中的任意位置,功能類似于if語句中的else。
執行流程:當表達式的值和對應case語句后的值相同時,既從該位置開始向下執行,一直執行到switch語句的結束,在執行中,如果遇到break語句,則結束switch語句的執行。 則在if-else if-else語句中,根據月份獲得每個月的天數,不考慮閏年。
java中的switch語句的編寫
上面那個回答有少少問題,就是switch-case中的break用法。少了break的話,最終的str一定是“太熱了,開空調。”
int i = 0;
int tempriture= 0;
if(tempriture< 10){
i = 1;
}
else if(tempriture >=10 && tempriture<=24){
i = 2;
}
else if(tempriture>= 25 && tempriture<= 34){
i = 3;
}
else if{tempriture> 35){
i=4;
}
String str = "";
switch(i){
case 1: str = "有點冷。要多穿衣服"; break;
case 2: str = "正合適。出去玩吧。"; break;
case 3: str = "有點熱。 "; break;
case 4: str = " 太熱了!開空調."; break;
}
Java語言中的switch case語句求解
我改了下
import *r;
public class SwitchCaseDemo
{ /** * @param args */
//不需要你自定義下面的方法 ,switch 本來就是和case在一起用的 你把Switch(a);放在那和case的結構就錯了
public static void main(String[] args)
{
// TODO Auto-generated method stub
Scanner sc = new Scanner(*);
*n("輸入學生的成績: ");
int a=*t();
switch(a)
{
case 100:
case 99:case 98:case 97:case 96:case 95:case 94:*n("該學生的成績的等級為A"); break;
case 89:
case 88:
case 87:
case 86:
case 85:
case 84:
case 83:
case 82:
case 81:
case 80:
*n("該學生的成績的等級為B"); break;
case 79: case 78: case 77: case 76: case 75: case 74: case 73: case 72: case 71: case 70: *n("該學生的成績的等級為C"); break; case 69: case 68: case 67: case 66: case 65: case 64: case 63: case 62: case 61: case 60: *n("該學生的成績的等級為D"); break; default: *n("該學生的成績的等級為E"); } }
/*private static void Switch(int a)
{ // TODO Auto-generated method stub } } 為什么這個是錯的。求解釋。。。。 這是case的錯誤,看不懂。。。T T,求解答。。。。 Multiple markers at this line - Syntax error on token "case", assert expected - Syntax error on token(s), misplaced construct(s)
}*/
}
java中的switch語句的編寫
上面那個回答有少少問題,就是switch-case中的break用法。
少了break的話,最終的str一定是“太熱了,開空調。”int i = 0; int tempriture= 0; if(tempriture< 10){ i = 1; } else if(tempriture >=10 && tempriture<=24){ i = 2; } else if(tempriture>= 25 && tempriture<= 34){ i = 3; } else if{tempriture> 35){ i=4; } String str = ""; switch(i){ case 1: str = "有點冷。
要多穿衣服"; break;case 2: str = "正合適。出去玩吧。
"; break;case 3: str = "有點熱。 "; break;case 4: str = " 太熱了!開空調."; break;}。
轉載請注明出處華閱文章網 » java的switch語句