欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

前言

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

一 輸出

第一種: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ù)打印完并沒有換行
第三種就和c語言的打印基本一一致

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

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

二 輸入

Scanner的使用

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

import java.util.Scanner;

那我們?nè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ù)來接收
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)文章

  • java對(duì)圖片進(jìn)行壓縮和resize縮放的方法

    java對(duì)圖片進(jìn)行壓縮和resize縮放的方法

    本篇文章主要介紹了java對(duì)圖片進(jìn)行壓縮和resize調(diào)整的方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-07-07
  • 解決Spring國際化文案占位符失效問題的方法

    解決Spring國際化文案占位符失效問題的方法

    本篇文章主要介紹了解決Spring國際化文案占位符失效問題的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-04-04
  • 如何使用Java操作Zookeeper

    如何使用Java操作Zookeeper

    這篇文章主要介紹了如何使用Java操作Zookeeper,幫助大家更好的理解和學(xué)習(xí)使用Java,感興趣的朋友可以了解下
    2021-04-04
  • Spring Cloud Ribbon的踩坑記錄與原理詳析

    Spring Cloud Ribbon的踩坑記錄與原理詳析

    這篇文章主要給大家介紹了關(guān)于Spring Cloud Ribbon踩坑記錄與原理的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-10-10
  • java基于netty NIO的簡(jiǎn)單聊天室的實(shí)現(xiàn)

    java基于netty NIO的簡(jiǎn)單聊天室的實(shí)現(xiàn)

    這篇文章主要介紹了java基于netty NIO的簡(jiǎn)單聊天室的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • idea重新下載已刪除的maven依賴包操作

    idea重新下載已刪除的maven依賴包操作

    這篇文章主要介紹了idea重新下載已刪除的maven依賴包操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2021-01-01
  • Springboot中分析SQL性能的兩種方式詳解

    Springboot中分析SQL性能的兩種方式詳解

    文章介紹了SQL性能分析的兩種方式:MyBatis-Plus性能分析插件和p6spy框架,MyBatis-Plus插件配置簡(jiǎn)單,適用于開發(fā)和測(cè)試環(huán)境,但高版本已棄用;p6spy框架功能更強(qiáng)大,可以自定義日志輸出格式,但在生產(chǎn)環(huán)境中使用需謹(jǐn)慎,感興趣的朋友一起看看吧
    2025-02-02
  • MyBatis-Plus 如何實(shí)現(xiàn)連表查詢的示例代碼

    MyBatis-Plus 如何實(shí)現(xiàn)連表查詢的示例代碼

    這篇文章主要介紹了MyBatis-Plus 如何實(shí)現(xiàn)連表查詢的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-08-08
  • 深入探討Java超時(shí)自動(dòng)取消的實(shí)現(xiàn)方案

    深入探討Java超時(shí)自動(dòng)取消的實(shí)現(xiàn)方案

    在復(fù)雜的分布式系統(tǒng)中,超時(shí)控制是保障系統(tǒng)穩(wěn)定性和可用性的關(guān)鍵機(jī)制,本文將深入探討Java中實(shí)現(xiàn)超時(shí)自動(dòng)取消的多種方案,希望對(duì)大家有所幫助
    2024-11-11
  • Mybatis調(diào)用存儲(chǔ)過程的案例

    Mybatis調(diào)用存儲(chǔ)過程的案例

    這篇文章主要介紹了Mybatis如何調(diào)用存儲(chǔ)過程,本文通過示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-07-07

最新評(píng)論