在條件判斷語句(if語句)過多時(shí),可以使用開關(guān)語句來編寫。開關(guān)語句的基本結(jié)構(gòu)是:
switch (整數(shù)){
case 整數(shù)值 1 : 語句; break ;
case 整數(shù)值 2 : 語句; break ;
case 整數(shù)值 3 : 語句; break ;
……………………..
default : 語句;
}
|
當(dāng)“整數(shù)”的值等于“整數(shù)值1”、“整數(shù)值2”、“整數(shù)值3”......中的一個(gè)時(shí),執(zhí)行相應(yīng)的語句,執(zhí)行完成跳出開關(guān)語句;若沒有相當(dāng)?shù)臄?shù)值,則執(zhí)行default后邊的語句,執(zhí)行完成跳出開關(guān)語句。
注:break語句用于跳出開關(guān)語句。
示例:輸出當(dāng)前月份。
public class control17{
public static void main(String[] args){
int i= 8 ;
switch (i){
case 1 : System.out.println( "是一月份" ); break ;
case 2 : System.out.println( "是二月份" ); break ;
case 3 : System.out.println( "是三月份" ); break ;
case 4 : System.out.println( "是四月份" ); break ;
case 5 : System.out.println( "是五月份" ); break ;
case 6 : System.out.println( "是六月份" ); break ;
case 7 : System.out.println( "是七月份" ); break ;
case 8 : System.out.println( "是八月份" ); break ;
case 9 : System.out.println( "是九月份" ); break ;
case 10 : System.out.println( "是十月份" ); break ;
case 11 : System.out.println( "是十一月份" ); break ;
case 12 :System.out.println( "是十二月份" ); break ;
default : System.out.println( "fault" );
}
}
}
|
運(yùn)行結(jié)果:
是八月份
|
以下是同學(xué)在學(xué)習(xí)java代碼時(shí),對(duì)java switch開關(guān)語句和if語句的練習(xí),把源代碼分享出來給大家,希望能夠給初學(xué)者一個(gè)參考學(xué)習(xí)哦。
程序清單:
import
java.util.Scanner;
public
class
練習(xí)題
1
{
public
static
void
main(String[] args) {
System.out.println(
"請(qǐng)輸入一個(gè)年份,求該年份是否為閏年,閏年能被4整除但不能被100整除,或者能被400整除"
);
int
a =
new
Scanner(System.in).nextInt();
if
(a <=
0
) {
System.out.println(
"你輸入的年份有誤,程序退出"
);
System.exit(
0
);
}
else
if
(a %
4
==
0
&& a %
100
!=
0
|| a %
400
==
0
) {
System.out.println(
"你輸入的年份為閏年"
);
}
else
{
System.out.println(
"你輸入的年份不是閏年"
);
}
System.out.println(
"輸入一個(gè)不超過五位的正整數(shù),求出它是幾位數(shù)并按逆序輸出來"
);
int
b =
new
Scanner(System.in).nextInt();
if
(b <
0
|| b >
100000
) {
System.out.println(
"你的輸入沒達(dá)到要求,程序退出"
);
System.exit(
0
);
}
else
if
(b >=
0
&& b <
10
) {
System.out.println(
" 你輸入的是一個(gè)一位數(shù)"
+ b);
}
else
if
(b >=
10
&& b <
100
) {
System.out.println(
"你輸入的是一個(gè)兩位數(shù),并且他的逆序是"
+ b %
10
+ b %
100
/
10
);
}
else
if
(b >=
100
&& b <
1000
) {
System.out.println(
"你輸入的是一個(gè)三位數(shù),并且他的逆序是"
+ b %
10
+ b %
100
/
10
+ b
%
1000
/
100
);
}
else
if
(b >=
1000
&& b <
10000
) {
System.out.println(
"你輸入的是一個(gè)四位數(shù),并且他的逆序是"
+ b %
10
+ b %
100
/
10
+ b
%
1000
/
100
+ b %
10000
/
1000
);
}
else
if
(b >=
10000
&& b <
100000
) {
System.out.println(
"你輸入的是一個(gè)五位數(shù),并且他的逆序是"
+ b %
10
+ b %
100
/
10
+ b
%
1000
/
100
+ b %
10000
/
1000
+ b %
100000
/
10000
);
}
System.out.println(
"輸入一個(gè)數(shù),判斷它是否能被3、5、7整除,注意考慮同時(shí)整除的情況"
);
double
c =
new
Scanner(System.in).nextDouble();
if
(c %
3
==
0
&& c %
5
==
0
&& c %
7
==
0
) {
System.out.println(
"這個(gè)數(shù)能被3、5、7、同時(shí)整除"
);
}
else
if
(c %
3
==
0
&& c %
5
==
0
) {
System.out.println(
"這個(gè)數(shù)能被3和5同時(shí)整除"
);
}
else
if
(c %
3
==
0
) {
System.out.println(
"這個(gè)數(shù)只能被3整除"
);
}
else
if
(c %
5
==
0
) {
System.out.println(
"這個(gè)數(shù)只能被5整除"
);
}
else
if
(c %
7
==
0
) {
System.out.println(
"這個(gè)數(shù)只能被7整除"
);
}
else
if
(c %
3
==
0
&& c %
7
==
0
) {
System.out.println(
"這個(gè)數(shù)能同時(shí)被3和7整除"
);
}
else
if
(c %
5
==
0
&& c %
7
==
0
) {
System.out.println(
"這個(gè)數(shù)能同時(shí)被5和7整除"
);
}
else
{
System.out.println(
"這個(gè)數(shù)不能被3、5、7整除"
);
}
System.out.println(
"從鍵盤輸入兩個(gè)數(shù)和一個(gè)運(yùn)算符,輸出運(yùn)算結(jié)果用if和switch分別寫出"
);
double
d =
new
Scanner(System.in).nextDouble();
double
e =
new
Scanner(System.in).nextDouble();
char
f =
new
Scanner(System.in).nextLine().charAt(
0
);
if
(f !=
'+'
|| f !=
'-'
|| f !=
'*'
|| f !=
'/'
) {
System.out.println(
"沒有這個(gè)運(yùn)算式"
);
if
(f ==
'+'
) {
}
System.out.println(
"你的輸出結(jié)果為"
+ (d + e));
}
if
(f ==
'-'
) {
System.out.println(
"你的輸出結(jié)果為"
+ (d - e));
}
if
(f ==
'*'
) {
System.out.println(
"你的輸出結(jié)果為"
+ d * e);
}
if
(f ==
'/'
) {
System.out.println(
"你的輸出結(jié)果為"
+ d / e);
}
System.out.println(
"用switch寫出來則為"
);
System.out.println(
"請(qǐng)輸入兩個(gè)數(shù)字和一個(gè)運(yùn)算符1.+ 2.- 3.* 4./"
);
double
h =
new
Scanner(System.in).nextDouble();
double
i =
new
Scanner(System.in).nextDouble();
char
g =
new
Scanner(System.in).nextLine().charAt(
0
);
switch
(g) {
case
'+'
:
System.out.println(
"你輸入運(yùn)算式結(jié)果為"
+ h + i);
break
;
case
'-'
:
System.out.println(
"你輸入運(yùn)算式結(jié)果為"
+ (h - i));
break
;
case
'*'
:
System.out.println(
"你輸入運(yùn)算式結(jié)果為"
+ h * i);
break
;
case
'/'
:
System.out.println(
"你輸入運(yùn)算式結(jié)果為"
+ h / i);
break
;
default
:
System.out.println(
"沒有這個(gè)運(yùn)算式"
);
}
System.out.println(
"請(qǐng)輸入一個(gè)月份并輸出它的天數(shù)"
);
int
t =
new
Scanner(System.in).nextInt();
if
(t <=
0
|| t >
12
) {
System.out.println(
"你的輸入有誤。程序退出"
);
System.exit(
0
);
}
if
(t ==
1
) {
System.out.println(
"你輸入的是一月份,一月有31天"
);
}
if
(t ==
2
) {
System.out.println(
"你輸入的是二月份,閏年的話二月是29天,不是閏年則為28天"
);
}
if
(t ==
3
) {
System.out.println(
"你輸入的是三月,三月是31天"
);
}
if
(t ==
4
) {
System.out.println(
"你輸入的是四月,四月有30天"
);
}
if
(t ==
5
) {
System.out.println(
"你輸入的是五月份,五月有31天"
);
}
if
(t ==
6
) {
System.out.println(
"你輸入的是六月份,六月有30天"
);
}
if
(t ==
7
) {
System.out.println(
"你輸入的是七月份,七月有31天"
);
}
if
(t ==
8
) {
System.out.println(
"你輸入的是八月份,八月有31天"
);
}
if
(t ==
9
) {
System.out.println(
"你輸入的是九月份,九月有30天"
);
}
if
(t ==
10
) {
System.out.println(
"你輸入的是十月份,十月有31天"
);
}
if
(t ==
11
) {
System.out.println(
"你輸入的是十一月份,十一月有31天"
);
}
if
(t ==
12
) {
System.out.println(
"你輸入的是十二月份,十二月有30天"
);
}
System.out.println(
"用switch寫出來"
);
int
o =
new
Scanner(System.in).nextInt();
switch
(o) {
case
1
: