一. 三元运算符
-
格式
- boolean ? 结果1 : 结果2;
- boolean为true,返回结果1,否则返回结果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); }
-
二. 从键盘获取数据
-
步骤
- 导入 java.util.Scanner;
- 创建Scanner对象 Scanner sc = new Scanner(System.in);
- 调用nextInt()方法获取一个整数 sc.nextInt();
- 关闭通道
-
演示
//导入类 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(); } }
三. 控制语句
- 定义
- 一个程序,想要更加健壮, 就必须能够应对各种各样的状况, 根据实际情况来判定直接结果
- 所以, 对于程序也应该是根据不同的情况来执行不同的顺序和语句
- 控制语句就可以控制流程的走向和顺序
- 分类
- 顺序结构
- 选择结构
- 循环结构
四. 顺序结构
-
定义
- 按照生活中的习惯, 从上往下,依次执行
-
演示
public static void main(String[] args) { //程序会从上往下依次执行 System.out.println("第一句话"); System.out.println("第二句话"); System.out.println("第三句话"); }
五. 选择结构(判断结构)
- 定义
- 可以控制部分语句执行,或跳过一部分语句
- 分类
- if 语句
- switch语句
六. if 语句格式一
-
格式
if(boolean){ //执行语句 }
-
执行流程
- 先计算if关键字后面的表达式, 看其返回值是true还是false
- 如果是true ,就执行后面大括号中的代码
- 如果是false, 就不执行
-
演示
public static void main(String[] args) { int a = 1; if(a>0){ System.out.println("语句体执行了"); } }
-
注意事项
- if 后面的小括号里面无论写什么, 结果都必须是boolean值
- if 语句控制的语句体如果是一条语句,大括号可以省略, 如果是多条语句, 就不能省略,建议永远不要省略
- 一般来说, 有左大括号就没有分号, 有分号,就没有左大括号
-
测试题
- 只有年龄超过18岁的学生才能玩游戏, 现在编一个程序,来判断一个学生是否可以玩游戏
七. if 语句格式二
-
格式
if(boolean){ //语句体1 }else{ //语句体2 }
-
执行流程
- 首先计算if后面小括号内的表达式的值, 看其返回值是true还是false
- 如果是true , 就执行语句体1
- 如果是false, 就执行语句体2
-
案例演示
public static void main(String[] args) { int i = 1; if(i>=18){ System.out.println("终于可以玩游戏了"); }else{ System.out.println("哎... 再等等吧"); } }
-
注意事项
- else 后面是没有表达式的, 只有if后面有
- 如果语句体只有一句话, 可以省略大括号,建议不要省略
- 三元运算符就是这种格式的简写形式,三元运算符可以实现的,这种格式都可以,反之不行
-
测试题
- 如果成绩大于90 如果是男生送一个女朋友 如果是女生送一个吴彦祖
-
测试题
- 妻子嘱咐程序猿丈夫回家的时候买10苹果, 如果碰到卖西瓜的买一个,编程模拟场景
八. if 语句格式三
-
格式
if(boolean){ //语句体1 }else if(boolean){ //语句体2 }else{ //语句体3 }
-
执行流程
- 首先计算if 后面括号内的表达式, 看其返回值结果
- 如果是true就执行语句体1, if语句结束
- 如果是false , 就执行下一个else if后面括号中的表达式,看其结果
- 如果是true ,就执行语句体2
- 如果是false , 就接着判断下一个else if后面表达式的结果
- 以此类推, 直到最后执行else语句结束
- 如果中途有一个if或者else if 后的括号判断结果是true ,则之后的代码都不再执行
-
注意事项
- 最后一个else可以省略, 但建议不要省略, 可以对有效值范围外的错误值进行提示
-
演示
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("泡妞"); } }
-
测试题
-
从键盘录入一个学生的成绩, 判断其成绩的等级
100 学神
90-99 学霸
80-89 优
70-79 良
60-69 及格
0-59 再接再厉
-
九. switch 语句
-
格式
switch(值){ case 值1: //语句体1; break; case 值2: //语句体2; break; //...... default: //语句体3; break; }
-
执行流程
- 先看switch括号中的值
- 然后和case后面的值匹配, 如果有就执行这个case后面的语句, 否则执行default 控制的语句
-
注意事项
- case后面只能是常量, 不能是变量, 多个case后面不能出现相同的值
- switch后面的值的类型只能是byte, short ,int ,字符, 字符串 , 枚举
- 结束条件: 执行到break , 或者代码运行完毕结束,如果一直遇不到break就会一直执行
- defautl 可以省略, 但是建议不要省略
-
演示
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; } }
-
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; } }
-
测试题
- 使用switch语句改写判断学生成绩的等级
-
测试题
- 判断 春夏秋冬 打印输出 春天 春暖花开 夏天 夏天打盹 秋天 秋高气爽 冬天 冬眠
-
测试题
- 利用switch实现一个计算器操作
- 第一次输入一个整数
- 第二次输入一个运算符
- 第三次输入整数
- 利用switch实现一个计算器操作
总结:
-
三元运算符
- boolean ? 结果1:结果;
-
键盘录入
- 导包: import java.util.Scanner;
- 建立键盘连接: Scanner sc = new Scanner(System.in);
- 从键盘获取数据: sc.nextInt() sc.next();
- 关闭通道: sc.close();
-
选择结构
- if
- switch
-
if语句
if(boolean){ }else if(boolean){ }...{ }else{ }
-
switch
- 匹配
- 接收: int String 枚举
- case穿透: 某个选项没有break, 造成程序继续往下运行,知道break或右大括号
作业
-
第一题
- 饭店里面有五道菜, 黄花鱼 200块, 烤鸭 100块, 红烧肉 60块, 小炒肉 40块, 白水豆腐 10块
- 一个客人进了饭店, 根据身上的钱来决定最好能吃哪道菜 , 编程模拟
-
第二题
- 从键盘接收一个名次(int) 使用switch-case作如下分支
名次为1 奖IPHONExs Max
名次为2 奖IPHONE8
名次为3 奖IPHONE7
名次为 4 奖IPHONE6
其它名次 努力吧,少年
- 从键盘接收一个名次(int) 使用switch-case作如下分支
-
第三题
-
编写程序,判断给定的某个年份是否是闰年
闰年的判断规则如下:(1)若某个年份能被4整除但不能被100整除,则是闰年。 (2)若某个年份能被400整除,则也是闰年。
-
-
扩展题
-
编程实现已知某人的工资(要求输入),求他应该缴纳的个人所得税以及最后得到的工资。
个人所得税计算方法计算方法 :
全月应纳税所得额 =工资薪金所得-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
-