Scanner類
Scanner類是屬于引用數(shù)據(jù)類型,我們先了解下引用數(shù)據(jù)類型。
引用數(shù)據(jù)類型的使用
???????????引用數(shù)據(jù)類型的變量定義及賦值有一個(gè)相對(duì)固定的步驟或格式。
1.創(chuàng)建對(duì)象并初始化
???????????數(shù)據(jù)類型 變量名 = new 數(shù)據(jù)類型();
2.通過(guò)對(duì)象調(diào)用方法或?qū)傩?/p>
???????????變量名.方法名();
Scanner類
???????Scanner類是引用數(shù)據(jù)類型的一種,我們可以使用該類來(lái)完成用戶鍵盤(pán)錄入,獲取到錄入的數(shù)據(jù)。
Scanner使用步驟:
1.導(dǎo)包:
import java.util.Scanner;
2.創(chuàng)建對(duì)象實(shí)例:
Scanner sc = new Scanner(System.in);
3.調(diào)用方法:
int i = sc.nextInt(); 用來(lái)接收控制臺(tái)錄入的數(shù)字
String s = sc.next(); 用來(lái)接收控制臺(tái)錄入的字符串
常用方法:
nextInt();//接受Int整數(shù)
nextDounle();//接受Double浮點(diǎn)數(shù)
next();//用于接受字符串
nextLine();//用于接受字符串
next()與nextLine()區(qū)別:
nextLine();//只遇到回車(chē)
next();//回車(chē)、Tab、空格、都會(huì)結(jié)束
Random
???????用來(lái)產(chǎn)生隨機(jī)數(shù)的類Random,它也屬于引用數(shù)據(jù)類型
Random使用方式:
1.import導(dǎo)包:所屬包
import java.util.Random
2.創(chuàng)建實(shí)例格式:
Random 變量名 = new Random();
方法簡(jiǎn)介:
public int nextInt(int maxValue)產(chǎn)生[0,maxValue)范圍的隨機(jī)整數(shù),包含0,不包含maxValue;
public double nextDouble() 產(chǎn)生[0,1)范圍的隨機(jī)小數(shù),包含0.0,不包含1.0。
選擇結(jié)構(gòu)
if語(yǔ)句
(1)三種格式
A:格式1
if(比較表達(dá)式) {
語(yǔ)句體;
}
B:格式2
if(比較表達(dá)式) {
語(yǔ)句體1;
}else {
語(yǔ)句體2;
}
C:格式3
if(比較表達(dá)式1) {
語(yǔ)句體1;
}else if(比較表達(dá)式2){
語(yǔ)句體2;
}
...
else {
語(yǔ)句體n+1;
}
(2)注意事項(xiàng)
A:比較表達(dá)式無(wú)論簡(jiǎn)單還是復(fù)雜,結(jié)果是boolean類型
B:if語(yǔ)句控制的語(yǔ)句體如果是一條語(yǔ)句,是可以省略大括號(hào)的;如果是多條,不能省略。
建議:永遠(yuǎn)不要省略。
C:一般來(lái)說(shuō),有左大括號(hào),就沒(méi)有分號(hào),有分號(hào),就沒(méi)有左大括號(hào)。
D:else后面如果沒(méi)有if,是不會(huì)出現(xiàn)比較表達(dá)式的。
E:三種if語(yǔ)句其實(shí)都是一個(gè)語(yǔ)句,只要有一個(gè)執(zhí)行,其他的就不再執(zhí)行。
(4)三元運(yùn)算符和if語(yǔ)句第二種格式的關(guān)系
所有的三元運(yùn)算符能夠?qū)崿F(xiàn)的,if語(yǔ)句的第二種格式都能實(shí)現(xiàn)。
反之不成立。
如果if語(yǔ)句第二種格式控制的語(yǔ)句體是輸出語(yǔ)句,就不可以。
因?yàn)槿\(yùn)算符是一個(gè)運(yùn)算符,必須要有一個(gè)結(jié)果返回,不能是一個(gè)輸出語(yǔ)句。
嵌套if與多重if
switch語(yǔ)句
(1)格式:
switch(表達(dá)式) {
case 值1:
語(yǔ)句體1;
break;
case 值2:
語(yǔ)句體2;
break;
...
default:
語(yǔ)句體n+1;
break;
}
格式解釋說(shuō)明:
switch:說(shuō)明這是switch語(yǔ)句。
表達(dá)式:可以是byte,short,int,char
JDK5以后可以是枚舉
JDK7以后可以是字符串
不能處理long或其他類型
case:后面的值就是要和表達(dá)式進(jìn)行比較的值
break:表示程序到這里中斷,跳出switch語(yǔ)句
default:如果所有的情況都不匹配,就執(zhí)行這里,相當(dāng)于if語(yǔ)句中的else
(2)執(zhí)行流程:
A:首先計(jì)算表達(dá)式的值
B:和每一個(gè)case進(jìn)行匹配,如果有就執(zhí)行對(duì)應(yīng)的語(yǔ)句體,看到break就結(jié)束。
C:如果沒(méi)有匹配,就執(zhí)行default的語(yǔ)句體n+1。
(3)注意事項(xiàng):
A:case后面只能是常量,不能是變量,而且,多個(gè)case后面的值不能出現(xiàn)相同的
B:default可以省略嗎?
可以省略,但是不建議,因?yàn)樗淖饔檬菍?duì)不正確的情況給出提示。
特殊情況:
case就可以把值固定。
A,B,C,D
C:break可以省略嗎?
可以省略,但是結(jié)果可能不是我們想要的。
會(huì)出現(xiàn)一個(gè)現(xiàn)象:case穿透。
最終我們建議不要省略
D:default一定要在最后嗎?
不是,可以在任意位置。但是建議在最后。
E:switch語(yǔ)句的結(jié)束條件
a:遇到break就結(jié)束了
b:執(zhí)行到末尾就結(jié)束了
(4)if語(yǔ)句和switch語(yǔ)句各自的場(chǎng)景
A:if
針對(duì)boolean類型的判斷
針對(duì)一個(gè)范圍的判斷
針對(duì)幾個(gè)常量的判斷
B:switch
針對(duì)幾個(gè)常量的判斷
循環(huán)語(yǔ)句
for循環(huán)語(yǔ)句
for(初始化語(yǔ)句;循環(huán)判斷條件;控制條件){
循環(huán)體;
}
while循環(huán)語(yǔ)句
初始化語(yǔ)句;
while(循環(huán)判斷條件){
循環(huán)體;
控制條件;
}
for和while的區(qū)別
a:使用上的區(qū)別
for語(yǔ)句的那個(gè)控制條件變量,在循環(huán)結(jié)束后不能在使用了。
而while的可以繼續(xù)使用。
b:理解上的區(qū)別
for適合于一個(gè)范圍的判斷
while適合次數(shù)不明確的
do...while語(yǔ)句
初始化語(yǔ)句;
do {
循環(huán)體語(yǔ)句;
控制條件語(yǔ)句;
}while(判斷條件語(yǔ)句);
三種循環(huán)的區(qū)別:
a:do...while循環(huán)至少執(zhí)行一次循環(huán)體
b:for和while必須先判斷條件是否是true,然后后才能決定是否執(zhí)行循環(huán)體
循環(huán)使用的注意事項(xiàng)(死循環(huán))
A:一定要注意修改控制條件,否則容易出現(xiàn)死循環(huán)。
B:最簡(jiǎn)單的死循環(huán)格式
a:while(true){...}
b:for(;;){}
控制跳轉(zhuǎn)語(yǔ)句
(1)break:中斷的意思
A:用在循環(huán)和switch語(yǔ)句中
B:作用
a:跳出單層循環(huán)
b:跳出多層循環(huán),需要標(biāo)簽語(yǔ)句的配合
(2)continue:繼續(xù)
A:用在循環(huán)中
B:作用
a:跳出單層循環(huán)的一次,可以繼續(xù)下一次
(3)return:返回
A:用于結(jié)束方法的
B:一旦遇到return,程序就不會(huì)在繼續(xù)往后執(zhí)行。
嵌套循環(huán):
for(初始化表達(dá)式; 循環(huán)條件; 操作表達(dá)式) {
………
for(初始化表達(dá)式; 循環(huán)條件; 操作表達(dá)式) {
執(zhí)行語(yǔ)句
………
}
………
}