从零开始学Java【07】
从零开始学Java【07】
学习视频:https://www.bilibili.com/video/BV12J41137hu?p=33
用户交互Scanner

通过Scanner类来获取用户输入,有两种方法:next方法和nextline方法
使用next方法来获取用户输入
思路:先创建一个扫描器对象,用于接收键盘数据,再弄一个if判断语句,判断内容是观察用户有没有输入字符串,如果判定为true,则执行if条件下语句:即用next方法来获取用户的输入
- 创建一个扫描器对象,用于接收键盘数据,括号内的System.in是参数,这句话目前阶段先背熟
Scanner s =new Scanner(System.in);

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

就有了代码
Scanner s =new Scanner(System.in);
2.if语句中的判断部分:判断用户有没有输入字符串
if (scanner.hasNext()==true){
XXXXX
}
其中scanner.hasNext()是看用户还有没有下一次的输入
- 如果用户还有输入,则scanner.hasNext()==true
- 如果用户没有输入,则scanner.hasNext()==false
这里的if判断语句是用户如果还有输入,则执行if语句下的操作
Tips:if判断中,一般scanner.hasNext()==true可以写成scanner.hasNext(),即
if (scanner.hasNext()){
XXXXX
}
括号里面默认scanner.hasNext()为true
- if语句中的执行部分:使用next方法接收
String str = scanner.next();//创建一个scanner的对象str,并把next方法给它
同理也可以scanner.next(),再alt+enter进行补全
注:其中hasNext方法与next方法是对应,hasNextLine方法与nextline方法对应
- 收尾部分:用scanner.close()方法来关闭输入
io流是要占据系统资源的,不需要使用的使用要关闭
完整程序如下:

结果可以发现,使用next方法时,当输入hello world!的时候,因为中间有空格,所以只输出hello。
使用使用nextline方法来获取用户输入
实现方法与上面差不多一样,只不过在判断时使用hasNextLine方法,在执行时使用nextLine方法

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

总结

①next输入不能有空格,而nextLine可以有空格
②模板是:
Scanner scanner = new Scanner(System.in);//开头
//然后把scanner对象赋给某个变量,即
//数据类型 变量名 = scanner.输入方法();
//之后再拿这个方法来做对应的操作
scanner.close();//结尾
Scanner进阶使用
scanner并不只有next和nextline方法,还有其它譬如nextInt,nextFloat这些限制输入数字的一些方法

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

②错误情况。系统先检测第一个if语句,用户输入5.5,第一个if判断函数hasNextInt == flase,执行第一个else函数体,跳转到第二个if,满足第二个判断函数hasNextFloat == true,所以执行第二个if函数体。
具体函数可以点进Scanner的Java文件观看,也可以打开Java文件,点击structure看函数方法

练手项目

注:在输出时,sum/m要用括号包起来
用户输入的东西储存在x中,当hasNextDouble函数成立时,不断执行while循环,直至为false则跳出循环

浙公网安备 33010602011771号