Scanner类和分支语句

2019-01-10

主要学习Scannery对象、单if语句、 if-else语句、switch语句

Scanner对象

为什么需要键盘录入数据?

开发当中,数据是动态的不是固定的,所以我们需要把固定的数据更改为键盘录入

如何使用Scanner对象
  1. 导包
    在类名上面加入:import java.util.Scanner;
  2. 创建对象
Scanner input = new Scanner(System.in);
  1. 定义变量接收用户输入
    整数:
int num = input.nextInt();

小数:

double num = input.nextDouble();

字符或者字符串

String num = input.nextLine();或者String num = input.next

注意

  1. 使用键盘输入获取数据之前建议加入提示性语句
  2. next系列的方法是阻塞方法,会等待用户输入,用户输入结束,程序继续运行
  3. java.util.InputMismatchException
    异常名称:输入不匹配
    产生原因:输入类型和接收类型不匹配
    解决方法:类型匹配即可

分支语句

单if语句

格式

if(条件表达式){
   语句体
}

执行流程
首先判断条件是否成立
成立:执行语句体
不成立:不做任何处理

注意

  1. 条件表达式必须是Boolean类型的值
  2. 如果语句体重只有一条语句,发括号可以省略,一般不省略(提高可读性)
  3. 记住不要写成if();{}的格式,这样的话,无论是否成立都会执行

if-else语句

格式

if(条件表达式){
   语句体1;
}else{
 语句体2;
}

执行流程
首先判断条件是否成立
成立:执行语句体1
不成立:执行语句体2

注意

  1. if-else语句能够用三目运算符改写,能用三目运算符改写的一定可以用改写成if-else语句,反之不一定

生成随机数

int random=(int)(Math.random()*10);
Math.random() :生成随机小数

多重if语句

格式

if(布尔表达式1) {
语句块1;
} else if(布尔表达式2) {
语句块2;
}………
else if(布尔表达式n){
	语句块n;
} else {
	语句块n+1;
}

逐条if语句进行判断
条件匹配,进入语句体
否则对if语句继续匹配

嵌套if语句

格式

 if(条件1) {
      if(条件2) {
              代码块1
      } else {
              代码块2
      }
} else {
      代码块3
}

判断字符串是否相等使用equals方法
= =只能够比较数值是否相等

switch语句

	switch语句的格式:
			switch (表达式)  {
			case 值1 : 
			语句序列;
			[break];
			case 值2:
			 语句序列;
			[break] ;
			     … … …      … …
			[default:
			break ;]
	 } 

switch语句特点:

  • 表达式类型可以是一下类型:(byte、short、char、int)
    JDK5以后可以使用枚举类型
    JDK7以后可以使用字符串
    注意:整型比较和计算的时候都是使用int类型来计算或者计较

  • case子句的取值必须是常量表达式,case子句取值不能重复

  • default子句就类似于if语句中else子句,表示一种其他情况,else子句只能够放在if语句的最后面,default子句可以放在任意位置,但是建议放在最后(可读性高)

  • 如果没有break子句表示退出switch语句,如果没有break语句,那么会出现break穿透现象
    (break穿透现象:在switch语句中,如果没有break语句,那么每一个cease子句会从上往下执行,知道碰到break为止)

if和switch语句的区别

if语句

  • 表达式是Boolean类型
  • 常用于区间判断

switch语句

  • 表达式类型不能是boolean类型,可以是byte short int char String 枚举
  • 常用于等值判断

选择语句的选取

  • 能用switch语句实现的就一定可以使用if实现,但是反之不一定
  • 如果是区间范围采用if,如果是等值判断使用switch
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值