javase基礎(chǔ)04-Scanner、Random、選擇與循環(huán)結(jié)構(gòu)

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ǔ)句
        ………
    }
    ………
}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 一、Java 簡(jiǎn)介 Java是由Sun Microsystems公司于1995年5月推出的Java面向?qū)ο蟪绦蛟O(shè)計(jì)...
    子非魚(yú)_t_閱讀 4,543評(píng)論 1 44
  • 1 順序語(yǔ)句 語(yǔ)句:使用分號(hào)分隔的代碼稱作為一個(gè)語(yǔ)句。 注意:沒(méi)有寫(xiě)任何代碼只是一個(gè)分號(hào)的時(shí)候,也是一條語(yǔ)句,...
    哈哈哎呦喂閱讀 473評(píng)論 0 0
  • 一、基礎(chǔ)知識(shí):1、JVM、JRE和JDK的區(qū)別:JVM(Java Virtual Machine):java虛擬機(jī)...
    殺小賊閱讀 2,559評(píng)論 0 4
  • 吃熱干面的時(shí)候,對(duì)面坐著一個(gè)女生。雖然她變了許多,我還是能認(rèn)出她是昔日好友小菜。 她的確變了。往日的馬尾辮不見(jiàn)了,...
    后夏夕顏心靜如水閱讀 636評(píng)論 2 3
  • 我想念我的朋友啊 一直想傾訴下心里想說(shuō)的話,可是現(xiàn)在卻沒(méi)什么人讓我傾訴了。我有很多朋友啊,...
    ys姍閱讀 496評(píng)論 0 3

友情鏈接更多精彩內(nèi)容