一、Scanner类
- 为什么需要键盘录入数据?
之前我们书写程序时候,数据是固定不变的,但是在开发当中,数据肯定是动态的而不是固定的,所以我们需要把固定的数据更改为键盘录入。 - 如何使用Scanner键盘录入对象
- 导包
在class修饰的类名上面加入如下语句
import java.util.Scanner; - 创建对象
Scanner input = new Scanner(System.in); - 使用变量接收数据
int num = input.nextInt();
- 导包
- 使用Scanner类的注意事项
输入的的类型和接受的类型不匹配
二、语句结构
- 流程控制语句是用来控制程序中各语句执行顺序的语句,可以把语句组合成能完成一定功能的小逻辑模块
- 其流程控制方式采用结构化程序设计中规定的三种基本流程结构,分别是:顺序结构、分支结构和循环结构
三、if单分支选择结构
- if语句对条件表达式进行一次测试,若测试为真,则执行下面的语句,否则跳过该语句
- 表达式的类型是boolean类型的,不能是其他的任意类型
- 如果if语句下面只有一条语句,那么大括号可以省略,建议不省略
- 如果出现以下情况一定要仔细看清楚:
int i = 99;
if(i>100);{
System.out.println(“HelloWord”);
}
程序输出结果为一个HelloWorld。为什么呢?
原因是在()后面加了一个分号了,很多同学犯了这个错误不会报错,但是却很难找到原因。
四、if-else双分支选择结构
- 当条件表达式为真时,执行语句块1,否则,执行语句块2。也就是else
- if-else语句的特点
当三目运算符都可以实现一样的效果,建议使用三目运算符实现;能用三目运算符实现的都可以使用if-else实现,反之不一定成立。
五、多重if-else语句
- else if可以有多个,else最多只有一个
- 多重if语句相对于前两个if语句的优点如下图所示
六、嵌套if选择结构
- 使用嵌套if语句在某些时候会导致程序可读性差
- 建议使用switch语句或者三目运算符改写
七、switch多分支选择结构
- 根据表达式值的不同执行许多不同的操作
switch (表达式) {
case 值1 :
语句序列;
[break];
case 值2:
语句序列;
[break] ;
… … … … …
[default:
默认语句 ;]
}
- switch表达式的返回值的数据类型必须是下述几种类型之一:
int,byte, char, short,String - case子句中的取值必须是常量,且所有case子句中的取值应是不同的
- case字句中的取值数据类型必须是表达式返回值的类型
- default子句是可选的
- break语句用来在执行完一个case分支后使程序跳出switch语句块
- default块顺序可以变动,但要注意其执行顺序,通常,default块放在末尾,也可以省略