Scanner对象
-
Java提供了一个工具类,可以获取用户的输入,java.util.Scanner是Java5的新特征可以通过Scanner类用来获取用户输入
-
基本语法:
Scanner s = new Scanner(System.in);
-
通过Scanner类的next()与nextLine()方法获取输入的字符串,在读取前我们一般需要使用hasNext()与hasNextLine()判断是否还有输入的数据
next()与nextLine()
在next()方法接收的输入字符,hello world只输出了hello,这是因为next() 方法遇见第一个有效字符(非空格,非换行符)时,开始扫描,当遇见第一个分隔符或结束符(空格或换行符)时,结束扫描,获取扫描到的内容,即获得第一个扫描到的不含空格、换行符的单个字符串。
nextLine()方法返回的是Enter键之前的所有字符,它是可以得到带空格的字符串的。可以获得空白
-
next()
-
1.一定要读取到有效字符后才可以结束输入
-
2.对输入有效字符之前遇到的空白,next()方法会自动将其去掉
-
3.只有输入有效字符后才能将后面输入的空白作为分隔或者结束符
-
4.next()不能得到带有空格的字符串
-
-
nextLine()
-
1.以Enter为结束符,也就是说nextLine()方法返回的是输入回车之前所有字符
-
2.可以获得空白
-
顺序结构
Java的基本结构就是顺序结构,除非特别说明,否则就按照顺序一句一句执行
顺序结构是最简单的算法结构
语句与语句之间,框与框之间是按从上到下的顺序进行的,它是由若干个一次执行的处理步骤组成的,它是任何一个算法都离不开的一种基本算法结构
if选择结构
很多时候我们需要去判断一个东西是否可行,然后才去执行,这样的过程中用if语句来表示
-
语句
if(布尔表达式){ //如果布尔表达式为true将执行语句 }
if单选择结构
对接受的内容进行equals判断是否相等,从键盘输入Hello,得到判断条件相同的字符串。按照顺序结构执行语句输出 Hello End
单选择语句执行判断语句,根据判断结果再决定是否执行方法内的语句
if双选择接结构
如果现在有两个条件,假如公司收购一个软件,成功了,给人支付100万,失败了。自己找人开发。那么这样的需求一个if就搞不定了,我们就需要两个判断,需要一个双结构选择,所以有了if-else结构
-
语法
if(布尔表达式){ //如果布尔表达式的值为true }else{ //如果布尔表达式的值为true }
判断分数如果大于60就是及格,小于60就是不及格
if多选择结构
在真实的情况中还可能存在ABCD,存在区间多级判断。比如90-100就是A,80-90是B等等,在生活中我们很多时候的选择也不仅仅只有两个,所以我们需要一个多选择结构来处理这类问题
-
语法
if(布尔表达式1){ //如果布尔表达式1的值为true执行代码 }else if(布尔表达式2){ //如果布尔表达式2的值为true执行代码 }else if(布尔表达式3){ //如果布尔表达式3的值为true执行代码 }else{ //如果以上布尔表达式都不为true执行代码 }
通过分级对分数的等级的进行打分
对输入的分数会进行if判断,当输入72时,从前三个判断出现到最后D
switch多选择结构
-
多选择结构还有一个实现方式就是switch case语句
-
switch case 语句判断一个变量与一系列值中某个值是否相等,每个值称为一个分支
-
switch语句中的变量类型可以是:
-
byte、short、int、char
-
case标签必须为字符串常量或字面量
-
switch(expression){
case value:
//语句
break;//可选
case value:
//语句
break;//可选
//你可以有任意数量的case语句
dafault://可选
//语句
}
grade值为B,switch进入匹配时会与每个case进行比值,当与B比对成功会输出良好,但为什么还会出现CD的评价。因为比对成功会按照顺序结构执行后面的语句所有按照顺序输出了三个分数评价。如果避免这种情况,需要在每个case后加上break。
当grade值为A时进入case比对成功输出优秀后,break跳出就不会在执行后面的语句了。