day03_控制语句

一. 三元运算符

  1. 格式

    • boolean ? 结果1 : 结果2;
    • boolean为true,返回结果1,否则返回结果2
  2. 演示

    • 获取两个数中最大的值

      public static void main(String[] args) {
      	int a = 10;
      	int b = 20;
      	//如果a大于b的话,结果为真,就返回a
      	int max = a > b ? a : b;	
      	System.out.println(max);
      }
      

二. 从键盘获取数据

  1. 步骤

    • 导入 java.util.Scanner;
    • 创建Scanner对象 Scanner sc = new Scanner(System.in);
    • 调用nextInt()方法获取一个整数 sc.nextInt();
    • 关闭通道
  2. 演示

    //导入类
    import java.util.Scanner;
    
    public class TestDemo {
    	
    	public static void main(String[] args) {
    		//创建键盘录入对象,打开键盘通道
    		Scanner sc = new Scanner(System.in);
    		//调用方法获取一个整数
    		int i = sc.nextInt();
    		System.out.println(i);
    		//关闭键盘通道
    		sc.close();
    	}
    }
    

三. 控制语句

  1. 定义
    • 一个程序,想要更加健壮, 就必须能够应对各种各样的状况, 根据实际情况来判定直接结果
    • 所以, 对于程序也应该是根据不同的情况来执行不同的顺序和语句
    • 控制语句就可以控制流程的走向和顺序
  2. 分类
    • 顺序结构
    • 选择结构
    • 循环结构

四. 顺序结构

  1. 定义

    • 按照生活中的习惯, 从上往下,依次执行
  2. 演示

    public static void main(String[] args) {
    	//程序会从上往下依次执行
    	System.out.println("第一句话");
    	
    	System.out.println("第二句话");
    	
    	System.out.println("第三句话");
    	
    }
    

五. 选择结构(判断结构)

  1. 定义
    • 可以控制部分语句执行,或跳过一部分语句
  2. 分类
    • if 语句
    • switch语句

六. if 语句格式一

  1. 格式

    if(boolean){
    	//执行语句
    }
    
  2. 执行流程

    • 先计算if关键字后面的表达式, 看其返回值是true还是false
    • 如果是true ,就执行后面大括号中的代码
    • 如果是false, 就不执行
  3. 演示

    public static void main(String[] args) {
    	
    	int a = 1;
    	
    	if(a>0){
    		System.out.println("语句体执行了");
    	}
    	
    }
    
  4. 注意事项

    • if 后面的小括号里面无论写什么, 结果都必须是boolean值
    • if 语句控制的语句体如果是一条语句,大括号可以省略, 如果是多条语句, 就不能省略,建议永远不要省略
    • 一般来说, 有左大括号就没有分号, 有分号,就没有左大括号
  5. 测试题

    • 只有年龄超过18岁的学生才能玩游戏, 现在编一个程序,来判断一个学生是否可以玩游戏

七. if 语句格式二

  1. 格式

    if(boolean){
    	//语句体1
    }else{
    	//语句体2
    }
    
  2. 执行流程

    • 首先计算if后面小括号内的表达式的值, 看其返回值是true还是false
    • 如果是true , 就执行语句体1
    • 如果是false, 就执行语句体2
  3. 案例演示

    public static void main(String[] args) {
    	
    	int i = 1;
    	if(i>=18){
    		System.out.println("终于可以玩游戏了");
    	}else{
    		System.out.println("哎... 再等等吧");
    	}
    	
    }
    
  4. 注意事项

    • else 后面是没有表达式的, 只有if后面有
    • 如果语句体只有一句话, 可以省略大括号,建议不要省略
    • 三元运算符就是这种格式的简写形式,三元运算符可以实现的,这种格式都可以,反之不行
  5. 测试题

    • 如果成绩大于90 如果是男生送一个女朋友 如果是女生送一个吴彦祖
  6. 测试题

    • 妻子嘱咐程序猿丈夫回家的时候买10苹果, 如果碰到卖西瓜的买一个,编程模拟场景

八. if 语句格式三

  1. 格式

    if(boolean){
    	//语句体1
    }else if(boolean){
    	//语句体2
    }else{
    	//语句体3
    } 
    
  2. 执行流程

    • 首先计算if 后面括号内的表达式, 看其返回值结果
    • 如果是true就执行语句体1, if语句结束
    • 如果是false , 就执行下一个else if后面括号中的表达式,看其结果
    • 如果是true ,就执行语句体2
    • 如果是false , 就接着判断下一个else if后面表达式的结果
    • 以此类推, 直到最后执行else语句结束
    • 如果中途有一个if或者else if 后的括号判断结果是true ,则之后的代码都不再执行
  3. 注意事项

    • 最后一个else可以省略, 但建议不要省略, 可以对有效值范围外的错误值进行提示
  4. 演示

    public static void main(String[] args) {
    	
    	int i = 10;
    	if(i>18){
    		System.out.println("吃鸡");
    	}else if(i>10){
    		System.out.println("LOL");
    	}else if(i>3){
    		System.out.println("王者农药");
    	}else{
    		System.out.println("泡妞");
    	}
    }
    
  5. 测试题

    • 从键盘录入一个学生的成绩, 判断其成绩的等级

      100 学神

      90-99 学霸

      80-89 优

      70-79 良

      60-69 及格

      0-59 再接再厉

九. switch 语句

  1. 格式

    switch(){
    	case1:	
    		//语句体1;
    		break;
    	case2:		
    		//语句体2;
    		break;
    	//......
    	default:
    		//语句体3;
    		break;
    }
    
  2. 执行流程

    • 先看switch括号中的值
    • 然后和case后面的值匹配, 如果有就执行这个case后面的语句, 否则执行default 控制的语句
  3. 注意事项

    • case后面只能是常量, 不能是变量, 多个case后面不能出现相同的值
    • switch后面的值的类型只能是byte, short ,int ,字符, 字符串 , 枚举
    • 结束条件: 执行到break , 或者代码运行完毕结束,如果一直遇不到break就会一直执行
    • defautl 可以省略, 但是建议不要省略
  4. 演示

    public static void main(String[] args) {
    	//输入数值,打印对象的星期数
    	int week = 5;
    	switch (week) {
    		case 1:
    			System.out.println("星期一");
    			break;
    		case 2:
    			System.out.println("星期二");
    			break;
    		case 3:
    			System.out.println("星期三");
    			break;
    		case 4:
    			System.out.println("星期四");
    			break;
    		case 5:
    			System.out.println("星期五");
    			break;
    		case 6:
    			System.out.println("星期六");
    			break;
    		case 7:
    			System.out.println("星期七");
    			break;
    		default:
    			System.out.print("您的输入有误");
    			break;
    	}
    	
    }
    
  5. case穿透

    • 当程序执行某个case后的代码,但是没有遇到break的时候, 就会一直执行下面的所有可执行的语句
    public static void main(String[] args) {
    	
    	int week = 1;
    	switch (week) {
    		case 1:
    			System.out.println("语句1......");
    			break;
    		case 2:
    			System.out.println("语句1......");
    			break;
    		case 3:
    			System.out.println("语句1......");
    			break;
    		default:
    			System.out.print("其他情况");
    			break;
    	}
    }
    
  6. 测试题

    • 使用switch语句改写判断学生成绩的等级
  7. 测试题

    • 判断 春夏秋冬 打印输出 春天 春暖花开 夏天 夏天打盹 秋天 秋高气爽 冬天 冬眠
  8. 测试题

    • 利用switch实现一个计算器操作
      • 第一次输入一个整数
      • 第二次输入一个运算符
      • 第三次输入整数

总结:

  1. 三元运算符

    • boolean ? 结果1:结果;
  2. 键盘录入

    • 导包: import java.util.Scanner;
    • 建立键盘连接: Scanner sc = new Scanner(System.in);
    • 从键盘获取数据: sc.nextInt() sc.next();
    • 关闭通道: sc.close();
  3. 选择结构

    1. if
    2. switch
  4. if语句

    if(boolean){
        
    }else if(boolean){
        
    }...{
        
    }else{
        
    }
    
  5. switch

    • 匹配
    • 接收: int String 枚举
    • case穿透: 某个选项没有break, 造成程序继续往下运行,知道break或右大括号

作业

  1. 第一题

    • 饭店里面有五道菜, 黄花鱼 200块, 烤鸭 100块, 红烧肉 60块, 小炒肉 40块, 白水豆腐 10块
    • 一个客人进了饭店, 根据身上的钱来决定最好能吃哪道菜 , 编程模拟
  2. 第二题

    • 从键盘接收一个名次(int) 使用switch-case作如下分支
      名次为1 奖IPHONExs Max
      名次为2 奖IPHONE8
      名次为3 奖IPHONE7
      名次为 4 奖IPHONE6
      其它名次 努力吧,少年
  3. 第三题

    • 编写程序,判断给定的某个年份是否是闰年
      闰年的判断规则如下:

        (1)若某个年份能被4整除但不能被100整除,则是闰年。
        (2)若某个年份能被400整除,则也是闰年。
      
  4. 扩展题

    • 编程实现已知某人的工资(要求输入),求他应该缴纳的个人所得税以及最后得到的工资。

      个人所得税计算方法计算方法 :
      ​ 全月应纳税所得额 =工资薪金所得-3500
      ​ 应纳税额 = 应纳税所得额 *税率-速算扣除数
      ​ 级数 全月应纳税所得额 税率(%) 速算扣除数
      ​ 1 不超过500元的 5 0
      ​ 2 超过500元至2000元的部分 10 25
      ​ 3 超过2000元至5000元的部分 15 125
      ​ 4 超过5000元至20000元的部分 20 375
      ​ 5 超过20000元至40000元的部分 25 1375
      ​ 6 超过40000元至60000元的部分 30 3375
      ​ 7 超过60000元至80000元的部分 35 6375
      ​ 8 超过80000元至100000元的部分 40 10375
      ​ 9 超过100000元的部分 45 15375

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值