最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java中Scanner的用法示例小結(jié)

 更新時(shí)間:2025年04月23日 14:32:37   作者:代碼不停  
有時(shí)候我們?cè)诰帉懘a的時(shí)候可能會(huì)使用輸入和輸出,那Java也有自己的輸入和輸出,今天我們來(lái)探究一下,對(duì)Java Scanner用法相關(guān)知識(shí)感興趣的朋友一起看看吧

前言

有時(shí)候我們?cè)诰帉懘a的時(shí)候可能會(huì)使用輸入和輸出,那Java也有自己的輸入和輸出,今天我們來(lái)探究一下

一 輸出

第一種:System.out.println(msg); // 輸出?個(gè)字符串, 自帶換? 
第二種:System.out.print(msg); // 輸出?個(gè)字符串, 不帶換? 
第三種:System.out.printf(format, msg); // 格式化輸出 

public class test {
    public static void main(String[] args) {
        System.out.println("hello world");//打印完會(huì)自動(dòng)換行
        System.out.print("hello world");//打印完不會(huì)自動(dòng)換行
        int a = 10;
        System.out.printf("%d\n",10);//打印數(shù)據(jù),需要輸入打印數(shù)據(jù)類型
    }
}

運(yùn)行結(jié)果如下

這里從運(yùn)行結(jié)果我們可以發(fā)現(xiàn)這里的第二個(gè)數(shù)據(jù)打印完并沒(méi)有換行
第三種就和c語(yǔ)言的打印基本一一致

println 輸出的內(nèi)容?帶\n換行,print 不帶\n換行
printf 的格式化輸出?式和C語(yǔ)?的printf 是基本?致的

我們使用第三種輸出的話,需要了解其對(duì)應(yīng)類型,才可以輸出,所以我們是經(jīng)常使用的是第一種輸出方式

二 輸入

Scanner的使用

Java輸入需要使用使?Scanner讀取字符串/整數(shù)/浮點(diǎn)數(shù),使?時(shí)需要導(dǎo)?該類包,Java中有許多的工具類Package java.util每種工具類的功能是不同的,我們使用那個(gè)功能必須在程序上面加上對(duì)應(yīng)的工具類名稱,否則無(wú)法執(zhí)行其功能

import java.util.Scanner;

那我們?nèi)绾问褂媚兀旅嫖覀儊?lái)介紹

public class test{
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int num = sc.nextInt();//表示輸入的是整形
        System.out.println(num);
        sc.close();//關(guān)閉我們的輸入
    }
}

這里綠色是我們輸入的,白色是輸出的

這里我們不只是可以整形輸入

public class test {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("請(qǐng)輸入你的名字:");
        String str = sc.nextLine();//輸入字符串
        System.out.println(str);
        System.out.println("請(qǐng)輸入你的年齡:");
        int age = sc.nextInt();
        System.out.println(age);//輸入int類型
        System.out.println("請(qǐng)輸入你的體重");
        double weight = sc.nextDouble();
        System.out.println(weight);
        sc.close();//關(guān)閉我們的輸入
    }
}

從上面我們可以看出每種數(shù)據(jù)的輸入是需要不同的數(shù)來(lái)接收
int 類型一般用      變量名. nextInt
double 類型一般用   變量名 .nextDouble()
String 字符串類型   變量名 .nextLine()或者變量名.next()

nextline()和next()輸入的區(qū)別
我們還是那上面的代碼舉例,我們把上面代碼的sc.nextLine()改為sc.next()

public class test {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("請(qǐng)輸入你的名字:");
        String str = sc.next();//輸入字符串
        System.out.println(str);
        System.out.println("請(qǐng)輸入你的年齡:");
        int age = sc.nextInt();
        System.out.println(age);//輸入int類型
        System.out.println("請(qǐng)輸入你的體重");
        double weight = sc.nextDouble();
        System.out.println(weight);
        sc.close();//關(guān)閉
    }
}

我們發(fā)現(xiàn)這里的程序運(yùn)行竟然出錯(cuò)了,為什么呢,這里的錯(cuò)誤是我們把zhang是名字,這里的san被程序認(rèn)為是年齡,年齡是int整形,但是san是字符串類型,所以這里類型不符合,所以報(bào)錯(cuò)了

sc.nextLine()表示的輸入一行,下一行開始前結(jié)束
sc.next()表示的輸入到遇到空格就結(jié)束

因?yàn)?strong>sc.next()遇到空格就結(jié)束,導(dǎo)致了代碼的出錯(cuò)

多組輸入

例如:使?Scanner循環(huán)讀取n個(gè)數(shù)字,并求取其平均值

public class test {
    public static void main(String[] args) {
        Scanner sc =  new Scanner(System.in);
        int count = 0;
        double sum = 0;
        while(sc.hasNextDouble()){
            double tem = sc.nextDouble();
            sum += tem;
            count++;
        }
        System.out.println("總數(shù)為:"+sum);
        System.out.println("平均數(shù)為:"+sum/count);
    }
}

 while(sc.hasNextDouble()){
            double tem = sc.nextDouble();
}
 這里控制的是循環(huán)多組輸入,這里輸入類型為double,
 如果改變輸入類型,這里while循環(huán)的數(shù)據(jù)類型也要改變
 與基本的輸入只是next變成了hasNext就行了

多組輸入的截止

當(dāng)循環(huán)輸?多個(gè)數(shù)據(jù)的時(shí)候
Windows上的CMD中使?ctrl+z
Linux/Mac/IDEA的控制臺(tái)上使?ctrl+d
我這里使用的是IDEA平臺(tái),所以輸入ctrl+d就截止了多組輸入

三 綜合練習(xí):猜數(shù)字游戲

完成猜數(shù)字游戲 ,用戶輸入數(shù)字,判斷該數(shù)字是大于,小于,還是等于隨機(jī)生成的數(shù)字,等于的時(shí)候退出程序。 (生成隨機(jī)數(shù)的范圍是1 ~ 100)
從題目中可以知道,我們首先要生成隨機(jī)數(shù),然后才能進(jìn)行猜測(cè)

生成隨機(jī)數(shù)

Java的Scanner中也提供了一個(gè)生成隨機(jī)數(shù)的工具類java.util.Random,我們使用其就可以生成隨機(jī)數(shù)
我們就想要這樣讓系統(tǒng)生成隨機(jī)數(shù)

Random

Random生成隨機(jī)數(shù),但這里生成的是偽隨機(jī)數(shù)

Random()                      生成一個(gè)隨機(jī)數(shù)
Random( long seed)            生成一個(gè)隨機(jī)數(shù)根據(jù)我們提供的種子

使用其功能必須要加上生成隨機(jī)數(shù)和輸入的工具類

public class test {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        Random random = new Random();//默認(rèn)隨機(jī)種子是系統(tǒng)時(shí)間
        System.out.println(random);
    }
}

生成隨機(jī)數(shù)結(jié)果如下

這里發(fā)現(xiàn)生成的是偽隨機(jī)數(shù),這里并不是我們想要的,我們想要的是生成1~100之間的數(shù)字
Random( long seed)
上面生成的偽隨機(jī)數(shù)不是我們想要的,如果我們想讓其按照我們的要求生成隨機(jī)數(shù),Random后面必須要加上種子根據(jù)我們的需要。

public class test {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        Random random = new Random();//默認(rèn)隨機(jī)種子是系統(tǒng)時(shí)間
        int guessNum = random.nextInt(100)+1;//[0-100)+1變成生成1 ~ 100之間的數(shù)
        System.out.println(guessNum);
     }
}

我們要注意這里的random.nextInt(100) 生成的時(shí)[0 , 100)之間的數(shù),因此我們需要+1這樣就生成我們所想要的[1,100]之間的數(shù)了

生成隨機(jī)數(shù)結(jié)果如下

我們可以看出我們生成的隨機(jī)數(shù)滿足我們的需求了

猜數(shù)字

我們這里肯定不可能一次就猜對(duì),所以這里我們可以讓它循環(huán),直到我們才對(duì)為止,我們既然需要猜多次,那我們就需要使用上面所學(xué)的多組輸入

public class test {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        Random random = new Random();//默認(rèn)隨機(jī)種子是系統(tǒng)時(shí)間
        int guessNum = random.nextInt(100)+1;//[0-100)+1變成生成1 ~ 100之間的數(shù)
        System.out.println(guessNum);
        while (sc.hasNextInt()){//多組輸入
            System.out.println("請(qǐng)猜數(shù)1~100");
            int num = sc.nextInt();
            if(num>guessNum){
                System.out.println("猜大了");
            } else if (num<guessNum) {
                System.out.println("猜小了");
            }else{
                System.out.println("猜對(duì)了");
                //猜對(duì)了,把這個(gè)數(shù)字打印一下
                System.out.println("正確的數(shù)字為:"+guessNum);
                break;
            }
        }
        sc.close();//關(guān)閉輸入
    }
}

運(yùn)行結(jié)果如下

到這里就結(jié)束了,希望對(duì)大家有所幫助,欲知后事如何,請(qǐng)聽下回分解

到此這篇關(guān)于Java中Scanner的用法的文章就介紹到這了,更多相關(guān)JavaScanner用法內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 詳解如何全注解方式構(gòu)建SpringMVC項(xiàng)目

    詳解如何全注解方式構(gòu)建SpringMVC項(xiàng)目

    這篇文章主要介紹了詳解如何全注解方式構(gòu)建SpringMVC項(xiàng)目,利用Eclipse構(gòu)建SpringMVC項(xiàng)目,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2018-10-10
  • @DS+@Transactional注解切換數(shù)據(jù)源失效問(wèn)題及解決

    @DS+@Transactional注解切換數(shù)據(jù)源失效問(wèn)題及解決

    這篇文章主要介紹了@DS+@Transactional注解切換數(shù)據(jù)源失效問(wèn)題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2025-05-05
  • Java中super和this的用法詳解

    Java中super和this的用法詳解

    這篇文章主要介紹了Java中super和this的用法詳解,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-08-08
  • java操作(DOM、SAX、JDOM、DOM4J)xml方式的四種比較與詳解

    java操作(DOM、SAX、JDOM、DOM4J)xml方式的四種比較與詳解

    java中四種操作(DOM、SAX、JDOM、DOM4J)xml方式的比較與詳解
    2008-10-10
  • springboot解決XSS存儲(chǔ)型漏洞問(wèn)題

    springboot解決XSS存儲(chǔ)型漏洞問(wèn)題

    這篇文章主要介紹了springboot解決XSS存儲(chǔ)型漏洞問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-05-05
  • Spring boot+VUE實(shí)現(xiàn)token驗(yàn)證的示例代碼

    Spring boot+VUE實(shí)現(xiàn)token驗(yàn)證的示例代碼

    本文詳細(xì)介紹了使用Vue和SpringBoot實(shí)現(xiàn)token認(rèn)證的方法,包括前后端交互流程、后端依賴導(dǎo)入、token工具類、攔截器、跨域處理、前端路由守衛(wèi)、請(qǐng)求攔截器等內(nèi)容,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-10-10
  • Java數(shù)組的初始化方法詳解

    Java數(shù)組的初始化方法詳解

    在Java程序開發(fā)中,數(shù)組是一個(gè)非常常用的數(shù)據(jù)類型,數(shù)組的初始化是使用數(shù)組來(lái)存儲(chǔ)和處理數(shù)據(jù)的關(guān)鍵步驟之一,但是,關(guān)于Java數(shù)組的初始化,經(jīng)常會(huì)讓人感到迷惑,本文將詳細(xì)介紹Java數(shù)組的初始化方法,幫助讀者從此告別關(guān)于Java數(shù)組初始化的困惑
    2023-11-11
  • IntelliJ IDEA 構(gòu)建maven多模塊工程項(xiàng)目(詳細(xì)多圖)

    IntelliJ IDEA 構(gòu)建maven多模塊工程項(xiàng)目(詳細(xì)多圖)

    這篇文章主要介紹了IntelliJ IDEA 構(gòu)建maven多模塊工程項(xiàng)目(詳細(xì)多圖),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-06-06
  • 最簡(jiǎn)單易懂的java數(shù)組排序方法整理

    最簡(jiǎn)單易懂的java數(shù)組排序方法整理

    這篇文章主要給大家整理介紹了最簡(jiǎn)單易懂的java數(shù)組排序方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用java具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • java數(shù)據(jù)庫(kù)開發(fā)之JDBC基礎(chǔ)使用方法及實(shí)例詳解

    java數(shù)據(jù)庫(kù)開發(fā)之JDBC基礎(chǔ)使用方法及實(shí)例詳解

    這篇文章主要介紹了java數(shù)據(jù)庫(kù)開發(fā)之JDBC基礎(chǔ)知識(shí)詳解,需要的朋友可以參考下
    2020-02-02

最新評(píng)論

郑州市| 石河子市| 佛坪县| 石渠县| 东乡| 金湖县| 漳州市| 长丰县| 根河市| 普洱| 安宁市| 泸州市| 九江市| 司法| 乐山市| 江山市| 惠州市| 上栗县| 常德市| 扎囊县| 铜山县| 万年县| 元氏县| 兴城市| 仙游县| 湘潭县| 改则县| 广东省| 合水县| 乌恰县| 庆阳市| 嘉峪关市| 常熟市| 定边县| 山东省| 武安市| 民勤县| 开远市| 英德市| 秦皇岛市| 八宿县|