Scanner類
Scanner類是屬于引用數(shù)據(jù)類型,我們先了解下引用數(shù)據(jù)類型私痹。
引用數(shù)據(jù)類型的使用
???????????引用數(shù)據(jù)類型的變量定義及賦值有一個相對固定的步驟或格式脐嫂。
1.創(chuàng)建對象并初始化
???????????數(shù)據(jù)類型 變量名 = new 數(shù)據(jù)類型();
2.通過對象調(diào)用方法或?qū)傩?/p>
???????????變量名.方法名();
Scanner類
???????Scanner類是引用數(shù)據(jù)類型的一種,我們可以使用該類來完成用戶鍵盤錄入紊遵,獲取到錄入的數(shù)據(jù)账千。
Scanner使用步驟:
1.導(dǎo)包:
import java.util.Scanner;
2.創(chuàng)建對象實例:
Scanner sc = new Scanner(System.in);
3.調(diào)用方法:
int i = sc.nextInt(); 用來接收控制臺錄入的數(shù)字
String s = sc.next(); 用來接收控制臺錄入的字符串
常用方法:
nextInt();//接受Int整數(shù)
nextDounle();//接受Double浮點數(shù)
next();//用于接受字符串
nextLine();//用于接受字符串
next()與nextLine()區(qū)別:
nextLine();//只遇到回車
next();//回車、Tab暗膜、空格匀奏、都會結(jié)束
Random
???????用來產(chǎn)生隨機數(shù)的類Random,它也屬于引用數(shù)據(jù)類型
Random使用方式:
1.import導(dǎo)包:所屬包
import java.util.Random
2.創(chuàng)建實例格式:
Random 變量名 = new Random();
方法簡介:
public int nextInt(int maxValue)產(chǎn)生[0,maxValue)范圍的隨機整數(shù)学搜,包含0娃善,不包含maxValue;
public double nextDouble() 產(chǎn)生[0,1)范圍的隨機小數(shù)瑞佩,包含0.0聚磺,不包含1.0。
選擇結(jié)構(gòu)
if語句
(1)三種格式
A:格式1
if(比較表達(dá)式) {
語句體;
}
B:格式2
if(比較表達(dá)式) {
語句體1;
}else {
語句體2;
}
C:格式3
if(比較表達(dá)式1) {
語句體1;
}else if(比較表達(dá)式2){
語句體2;
}
...
else {
語句體n+1;
}
(2)注意事項
A:比較表達(dá)式無論簡單還是復(fù)雜钉凌,結(jié)果是boolean類型
B:if語句控制的語句體如果是一條語句咧最,是可以省略大括號的;如果是多條,不能省略矢沿。
建議:永遠(yuǎn)不要省略滥搭。
C:一般來說,有左大括號捣鲸,就沒有分號瑟匆,有分號,就沒有左大括號栽惶。
D:else后面如果沒有if愁溜,是不會出現(xiàn)比較表達(dá)式的。
E:三種if語句其實都是一個語句外厂,只要有一個執(zhí)行冕象,其他的就不再執(zhí)行。
(4)三元運算符和if語句第二種格式的關(guān)系
所有的三元運算符能夠?qū)崿F(xiàn)的汁蝶,if語句的第二種格式都能實現(xiàn)渐扮。
反之不成立。
如果if語句第二種格式控制的語句體是輸出語句掖棉,就不可以墓律。
因為三元運算符是一個運算符,必須要有一個結(jié)果返回幔亥,不能是一個輸出語句耻讽。
嵌套if與多重if
switch語句
(1)格式:
switch(表達(dá)式) {
case 值1:
語句體1;
break;
case 值2:
語句體2;
break;
...
default:
語句體n+1;
break;
}
格式解釋說明:
switch:說明這是switch語句。
表達(dá)式:可以是byte,short,int,char
JDK5以后可以是枚舉
JDK7以后可以是字符串
不能處理long或其他類型
case:后面的值就是要和表達(dá)式進(jìn)行比較的值
break:表示程序到這里中斷帕棉,跳出switch語句
default:如果所有的情況都不匹配,就執(zhí)行這里,相當(dāng)于if語句中的else
(2)執(zhí)行流程:
A:首先計算表達(dá)式的值
B:和每一個case進(jìn)行匹配针肥,如果有就執(zhí)行對應(yīng)的語句體,看到break就結(jié)束笤昨。
C:如果沒有匹配祖驱,就執(zhí)行default的語句體n+1。
(3)注意事項:
A:case后面只能是常量瞒窒,不能是變量捺僻,而且,多個case后面的值不能出現(xiàn)相同的
B:default可以省略嗎?
可以省略崇裁,但是不建議匕坯,因為它的作用是對不正確的情況給出提示。
特殊情況:
case就可以把值固定拔稳。
A,B,C,D
C:break可以省略嗎?
可以省略葛峻,但是結(jié)果可能不是我們想要的。
會出現(xiàn)一個現(xiàn)象:case穿透巴比。
最終我們建議不要省略
D:default一定要在最后嗎?
不是术奖,可以在任意位置礁遵。但是建議在最后。
E:switch語句的結(jié)束條件
a:遇到break就結(jié)束了
b:執(zhí)行到末尾就結(jié)束了
(4)if語句和switch語句各自的場景
A:if
針對boolean類型的判斷
針對一個范圍的判斷
針對幾個常量的判斷
B:switch
針對幾個常量的判斷
循環(huán)語句
for循環(huán)語句
for(初始化語句;循環(huán)判斷條件;控制條件){
循環(huán)體;
}
while循環(huán)語句
初始化語句;
while(循環(huán)判斷條件){
循環(huán)體;
控制條件;
}
for和while的區(qū)別
a:使用上的區(qū)別
for語句的那個控制條件變量,在循環(huán)結(jié)束后不能在使用了采记。
而while的可以繼續(xù)使用佣耐。
b:理解上的區(qū)別
for適合于一個范圍的判斷
while適合次數(shù)不明確的
do...while語句
初始化語句;
do {
循環(huán)體語句;
控制條件語句;
}while(判斷條件語句);
三種循環(huán)的區(qū)別:
a:do...while循環(huán)至少執(zhí)行一次循環(huán)體
b:for和while必須先判斷條件是否是true,然后后才能決定是否執(zhí)行循環(huán)體
循環(huán)使用的注意事項(死循環(huán))
A:一定要注意修改控制條件,否則容易出現(xiàn)死循環(huán)唧龄。
B:最簡單的死循環(huán)格式
a:while(true){...}
b:for(;;){}
控制跳轉(zhuǎn)語句
(1)break:中斷的意思
A:用在循環(huán)和switch語句中
B:作用
a:跳出單層循環(huán)
b:跳出多層循環(huán)兼砖,需要標(biāo)簽語句的配合
(2)continue:繼續(xù)
A:用在循環(huán)中
B:作用
a:跳出單層循環(huán)的一次,可以繼續(xù)下一次
(3)return:返回
A:用于結(jié)束方法的
B:一旦遇到return,程序就不會在繼續(xù)往后執(zhí)行既棺。
嵌套循環(huán):
for(初始化表達(dá)式; 循環(huán)條件; 操作表達(dá)式) {
………
for(初始化表達(dá)式; 循環(huán)條件; 操作表達(dá)式) {
執(zhí)行語句
………
}
………
}