一.Scanner类
作用:接收用户输入(键盘输入)
Scanner input = new Scanner(System.in); // 要引入Scanner类--import java.util.Scanner;
//代码块
input.close(); //关闭输入流,不关会一直占用系统资源,养成个好习惯
//在代码最后关闭,多个Scanner类可能会报错
输入的字符串: input.next(); // nextLine()
输入的数字: input.nextInt();
输入的浮点型: input.nextDouble();
注意:
1)多个输入,鼠标光标要移动到相应位置,从命令行输入,每次输入完,都要按Enter
2)不同Scanner的缓冲区是不同的,输入内容会全部进入输入缓冲区,Scanner会把输入缓冲区的内容全部拿入自己的缓冲区,然后才开始分析我们的需求
二.if基本结构(条件判断)
if(条件){
//代码块
}
注意:
条件只能是boolean类型值或者表达式,true或者false,不能为其它值
当只有一条语句时,可以省略大括号,但是不建议省略
三.复杂条件判断
结合运算符的优先级编写条件
最高的优先级:( )
最低的优先级:=
优先级:!> 算术运算符 > 关系运算符 > && > ||
复杂条件使用括号提高可读性
四.if-else分支结构
if ( 条件 ) {
//代码块1
} else {
//代码块2
}
注意:
else后面没有小括号,大括号不建议省略
扩展:
equals用法:
equals:用于判断字符串内容是否一致,区别于 ==
一般把确定的字符串内容,写在前面,变量写在后面(括号内)
== :如果是基本类型数值,直接判断值是否相等
如果是字符串类型,判断的内容是对象
==判断地址和内容是否相等
equals只判断内容相等
获取随机数:
Math.random()方法获取随机数,生成的值的范围为:[0,1)
左闭右开 :可以为0,永远接近1,但是不可能为1
类型为double类型
五.多重if分支结构
if (条件1) {
//代码块1
} else if (条件2){
//代码块2
} else if (条件3){
//代码块3
} else {
//代码块4
}
注意:
1)最后else可省,根据具体的业务
2)else和if是分开,中间有空格
3)else if可以存在多个
4)适用于连续的区间判断,顺序不能颠倒
六.if分支结构嵌套
if(条件1) {
if(条件2) {
// 代码块1
} else {
// 代码块2
}
} else {
// 代码块3
}
注意:
嵌套的层次,不能过多,一般不超过三层
七.switch分支结构
switch (表达式) {
case 常量1:
语句;
break;
case 常量2:
语句;
break;
…
default:
语句;
}
注意:
1)表达式支持的基本类型:int,byte,short,char
特殊类型:枚举类型,String类型
2)每个case匹配执行结束,要加break关键字,分号结尾,作用是结束分支结构
3)case后面的常量值,不能重复
4)default的顺序,没有固定要求,但是一般建议写在最后,且加上break;关键字,也可以省略不写
break和continue的区别:
(1)continue语句只结束本次循环,而不是终止整个循环的执行;
(2)break语句则是结束整个循环过程,不再判断执行循环的条件是否成立。
八.switch和多重if的异同
相同点:
都是用于处理多分支条件判断
不同点:
switch:只能处理等值的条件判断
多重if:没有switch的条件限制,一般用于连续的区间条件判断(某个值在固定的区间范围内)