用户交互Scanner
Scanner对象
- 通过Scanner类获取用户输入
- 基本语法
Scanner s= new Scanner(System.in);
- 通过Scanner类的next()与nextLine()方法获取输入的字符串(读取前可用hasNext()与hasNextLine()判断是否还有输入的数据)
next():
- 读取到有效字符结束输入
- 输入有效字符之前的空白,会自动将其去掉
- 只有输入有效字符后才将其后面输入的空白作为分隔符或者结束符(Q1:作为分隔符的情况是怎样的?是否跟第四点矛盾呢)
- next()不能得到带有空格的字符串
nextLine():
- 以Enter为结束符,即输出键入回车前的一切字符
- 可以获得空白(即有效字符之前的空白会被保留)
next的方式接收
nextLine的方式接收
可以不用判断是否还有输入的数据
实例
- 判断数据类型
Q2:可以发现在输入不是整数时直接跳过了输入小数的步骤,且若输入小数时输入整数,会自动转换为小数,如何去改进?
- 求和平均数
注意点
- Java的Scanner类中的nextInt()默认读入的是十进制,nextInt(int radix)中的radix指定的是读入数字的进制。
例如nextInt(8)表示读入的数据是8进制,如果你输入9就会报错。nextInt(16)就表示读入的数据是16进制,你输入a得到的就是10
顺序结构
- 最简单的算法结构
- 依次执行
选择结构
if单选择结构
equals:判断字符串是否相等(不要去用==判断字符串)
if双选择结构
if多选择结构
- 至多有一个else,在所有的else if之后
- 可以有若干个else if,在else之前
- 一旦其中一个else if检测为true,其他的else if以及else都将跳过执行
嵌套的if结构
应用:二分法,极大提高效率
Switch多选择结构
break的作用是跳出循环
与C语言不同,java的Switch可以支持字符串类型