Java学习第四天
Java中的语句分类
顺序语句
代码从上向下依次执行
分支语句
有多个选择,但是只能选择一条进行执行
循环语句
分支语句(重点,重点,重点)
作用
判断
分支语句的分类
if
switch
if(重点)
1,基本的if语句
语法:
if(条件表达式){
当条件表达式值为true时,执行的代码
}
案例:
去网吧上网,年龄大于等于18岁,显示欢迎来自艾欧尼亚的最强王者
思路:
1,定义一个变量记录年龄
int age = 21;
2,判断年龄是否大有等于18
if(age >= 18){
2.1:大于等于18,欢迎来自艾欧尼亚的最强王者
System.out.println("欢迎来自艾欧尼亚的最强王者");
}
2,if else语句
语法:
if(条件表达式){
当条件表达式值为true时,执行的代码
}else{
当条件表达式值为false时,执行的代码
}
案例:
去网吧上网,年龄大于等于18岁,显示欢迎来自艾欧尼亚的最强王者
如果年龄小于18岁,显示悄悄告诉你旁边有个黑网吧
思路:
1,定义一个变量记录年龄
int age = 21;
2,判断年龄是否大有等于18
if(age >= 18){
2.1:大于等于18,欢迎来自艾欧尼亚的最强王者
System.out.println("欢迎来自艾欧尼亚的最强王者");
}else{
2.2:小于18
System.out.println("悄悄告诉你旁边有个黑网吧");
}
3,else if语句
语法:
if(条件表达式1){
当条件表达式1为true时,执行此处代码
}else if(条件表达式2){
当条件表达式2为true时,执行此处代码
}else if(条件表达式3){
当条件表达式3为true时,执行此处代码
}
...
else if(条件表达式n){
当条件表达式n为true时,执行此处代码
}else{
当以上条件都不满足,执行此处代码
}
注意:
else if可以有多个,也可以没有
else可有可无
案例:
案例:
去网吧上网,年龄大于等于18岁并且小于等于80,显示欢迎来自艾欧尼亚的最强王者
如果年龄小于18岁大于等于0,显示悄悄告诉你旁边有个黑网吧
大于80小于120:老爷子回家逗孩子吧
大于120:给博物馆打电话
小于0:准备报警
代码:
int age = 230;
if(age < 0){
System.out.println("报警");
}else if(0 <= age && age < 18){
System.out.println("悄悄告诉你旁边有个黑网吧");
}else if(18 <= age && age <= 80){
System.out.println("欢迎来自艾欧尼亚的最强王者");
}else if(80 < age && age < 120){
System.out.println("老爷子回家逗孩子吧");
}else if(age > 120){
System.out.println("给博物馆打电话");
}else{
System.out.println("年龄等于120");
}
练习:
键盘录入成绩
显示成绩区间
小于0或大于100:成绩输入有误
0~59:D
60~74:C
75~84:B
85~100:A
4,if的嵌套
在if大括号中可以使用if
案例:
去超市购物,满200打8折,会员在打8折,不满200,是会员打8折,不满200,不是会员不打折
思路:
1,定义一个变量记录消费金额
double money01 = 230;
2,定义一个变量记录是否为会员
String isVIP = "是";
3,判断消费金额是否大于等于200
if(money01 >= 200){
3.1:大于等于200
3.1.1:计算折后金额
double money02 = money01 * 0.8;
3.1.2:判断是否为会员
if(isVIP.equals("是")){
3.1.2.1:是会员
使用3.1.1计算的金额,在打8折
double money03 = money02 * 0.8;
输出最终金额
System.out.println("本次消费金额为:"+money01+",本次实付金额:"+money03+",本次优惠金额:"+(money01-money03));
}else{
3.1.2.2:不是会员
输出3.1.1计算的金额
System.out.println("本次消费金额为:"+money01+",本次实付金额:"+money02+",本次优惠金额:"+(money01-money02));
}
}else{
3.2:小于200
3.2.2:判断是否为会员
if(isVIP.equals("是")){
3.2.2.1:是会员
使用1的金额,在打8折
double money02 = money01 * 0.8;
输出最终金额
System.out.println("本次消费金额为:"+money01+",本次实付金额:"+money02+",本次优惠金额:"+(money01-money02));
}else{
3.2.2.2:不是会员
输出1的金额
System.out.println("本次消费金额为:"+money01+",本次实付金额:"+money01+",本次优惠金额:"+(money01-money01));
}
}
总结
语法:
if(条件表达式1){
当条件表达式1为true时,执行此处代码
}else if(条件表达式2){
当条件表达式2为true时,执行此处代码
}else if(条件表达式3){
当条件表达式3为true时,执行此处代码
}
...
else if(条件表达式n){
当条件表达式n为true时,执行此处代码
}else{
当以上条件都不满足,执行此处代码
}
注意:
else if可以有多个,也可以一个没有
else可有可无
在if语句的大括号中可以使用if语句
有if才会有else if或else
switch
语法:
switch(变量){
case 常量1:
当变量值等于常量1时,执行此处代码
break;
case 常量2:
当变量值等于常量2时,执行此处代码
break;
...
case 常量n:
当变量值等于常量n时,执行此处代码
break;
default:
当变量值不等于以上常量时执行此处代码
break;
}
案例:
给女朋友送礼物
元旦 一束鲜花 200
春节 发红包 200
元宵 吃元宵 500
情人节 包 300
女神节 化妆品 320
愚人节 玩笑 0
520 转账 520
521 转账 521
儿童节 零食大礼包 180
七夕情人节 花 200
中秋 吃月饼 500
国庆 去旅游 10000
双11 清空购物车 0
圣诞节 吃饭看电影 500
狂欢夜 吃饭看电影 500
平安夜 吃饭看电影 500
代码:
1,定义一个变量记录节日名称
String tag = "国庆";
2,使用switch进行判断
switch(tag){
case "元旦":
System.out.println("送一束鲜花");
break;
case "春节":
System.out.println("发红包");
break;
case "元宵":
System.out.println("吃元宵");
break;
default:
System.out.println("暂未收录此节日");
break;
}
案例:输入月份显示对应的季节
2,3,4:春季
5,6,7,8,9:夏季
10:秋季
11,12,1:冬季
代码:
//1,倒入Scanner所在的包
import java.util.Scanner;
class Demo08{
public static void main(String[] args){
//2,创建Scanner的对象
Scanner sca = new Scanner(System.in);
//3,提示用户输入月份
System.out.println("请输入月份:");
//4,等待用户输入月份的值
int num = sca.nextInt();
//5,判断月份对应的季节
switch(num){
case 2:
case 3:
case 4:
System.out.println("春季");
break;
case 5:
case 6:
case 7:
case 8:
case 9:
System.out.println("夏季");
break;
case 10:
System.out.println("秋季");
break;
case 11:
case 12:
case 1:
System.out.println("冬季");
break;
}
}
}
注意:
如果case没有对应的break,会导致程序贯穿.直到遇到break
break:跳出当前代码块
if与switch的区别
if可以判断区间,也可以判断值是否相同
if代码结构稍微有一点混乱
switch只能判断值是否相同
switch的语法稍微简单一些
switch的执行效率稍微高于if
switch的变量只能是基本数据类型或String,而且String是在jdk1.5及以后才支持
局部变量
概念:在方法中声明的变量,就是局部变量
注意:
1,同一个作用域下,局部变量不能重名