从零开始学Java【07】

从零开始学Java【07】


学习视频:https://www.bilibili.com/video/BV12J41137hu?p=33

用户交互Scanner

image-20220426105914781

通过Scanner类来获取用户输入,有两种方法:next方法和nextline方法

使用next方法来获取用户输入

思路:先创建一个扫描器对象,用于接收键盘数据,再弄一个if判断语句,判断内容是观察用户有没有输入字符串,如果判定为true,则执行if条件下语句:即用next方法来获取用户的输入

  1. 创建一个扫描器对象,用于接收键盘数据,括号内的System.in是参数,这句话目前阶段先背熟
Scanner s =new Scanner(System.in);

image-20220426111017202

输入 new Scanner(System.in),再按alt+enter,进行代码补全

image-20220426111222026

就有了代码

Scanner s =new Scanner(System.in);

2.if语句中的判断部分:判断用户有没有输入字符串

if (scanner.hasNext()==true){
         XXXXX   
        }

其中scanner.hasNext()是看用户还有没有下一次的输入

  1. 如果用户还有输入,则scanner.hasNext()==true
  2. 如果用户没有输入,则scanner.hasNext()==false

这里的if判断语句是用户如果还有输入,则执行if语句下的操作

Tips:if判断中,一般scanner.hasNext()==true可以写成scanner.hasNext(),即

if (scanner.hasNext()){
         XXXXX   
        }

括号里面默认scanner.hasNext()为true

  1. if语句中的执行部分:使用next方法接收
String str = scanner.next();//创建一个scanner的对象str,并把next方法给它

同理也可以scanner.next(),再alt+enter进行补全

注:其中hasNext方法与next方法是对应,hasNextLine方法与nextline方法对应

  1. 收尾部分:用scanner.close()方法来关闭输入

io流是要占据系统资源的,不需要使用的使用要关闭

完整程序如下:

image-20220426120257479

结果可以发现,使用next方法时,当输入hello world!的时候,因为中间有空格,所以只输出hello。

使用使用nextline方法来获取用户输入

实现方法与上面差不多一样,只不过在判断时使用hasNextLine方法,在执行时使用nextLine方法

image-20220426121454830

不使用if判断语句,用最常使用的代码方式来执行输入操作

image-20220426122307626

总结

image-20220426122737023

①next输入不能有空格,而nextLine可以有空格

②模板是:

Scanner scanner = new Scanner(System.in);//开头
    //然后把scanner对象赋给某个变量,即
    //数据类型 变量名 = scanner.输入方法();
    //之后再拿这个方法来做对应的操作



scanner.close();//结尾

Scanner进阶使用

scanner并不只有next和nextline方法,还有其它譬如nextInt,nextFloat这些限制输入数字的一些方法

image-20220426151002567

①正确情况。系统先检测第一个if语句,用户输入10,满足hasNextInt函数,所以执行第一个if函数体,输出了10,第一个if结束。开始第二个if,用户输入2.5,满足hasNextFloat函数,开始执行if函数体,然后结束。

image-20220426152222011

②错误情况。系统先检测第一个if语句,用户输入5.5,第一个if判断函数hasNextInt == flase,执行第一个else函数体,跳转到第二个if,满足第二个判断函数hasNextFloat == true,所以执行第二个if函数体。

具体函数可以点进Scanner的Java文件观看,也可以打开Java文件,点击structure看函数方法

image-20220426152901332

练手项目

image-20220426154023785

注:在输出时,sum/m要用括号包起来

用户输入的东西储存在x中,当hasNextDouble函数成立时,不断执行while循环,直至为false则跳出循环

posted @ 2022-04-26 15:58  机智的小柴胡  阅读(50)  评论(0)    收藏  举报