第三章-选择结构
1、if基本结构(条件判断)
语法:
if ( 条件 ) {
//代码块
}
注意:
条件只能是boolean类型值或者表达式,true或者false,不能为其它值
当只有一条语句时,可以省略大括号,但是不建议省略
2、复杂条件判断
结合运算符的优先级编写条件
最高的优先级:( )
最低的优先级:=
优先级:!> 算术运算符 > 关系运算符 > && > ||
复杂条件使用括号提高可读性
单个逻辑运算符 & | ^
& : 位运算1 1为1 ,其他为0
| : 位运算0 0为0 其他为1
^ : 异或位运算 同为0 异为1
3、if-else分支结构
语法:
if ( 条件 ) {
//代码块1
} else {
//代码块2
}
注意:
else后面没有小括号,大括号不建议省略
4、多重if分支结构
语法:
if (条件1) {
//代码块1
} else if (条件2){
//代码块2
} else if (条件3){
//代码块3
} else {
//代码块
}
注意:
1)最后else可省,根据具体的业务
2)else和if是分开,中间有空格
3)else if可以存在多个
4)适用于连续的区间判断,顺序不能颠倒
5、if分支结构嵌套
语法:
if(条件1) {
if(条件2) {
// 代码块1
} else {
// 代码块2
}
} else {
// 代码块3
}
注意:
1)嵌套的层次,不能过多,一般不超过三层
扩展:
equals用法
equals:用于判断字符串内容是否一致,区别于 ==
一般把确定的字符串内容,写在前面,变量写在后面(括号内)
== :如果是基本类型数值,直接判断值是否相等
如果是字符串类型,判断的内容是对象
获取随机数:
方式一:Math.random()方法获取随机数,生成的值的范围为:[0,1)
int ranNum = (int)(Math.random())
左闭右开 :可以为0,永远接近1,但是不可能为1
类型为double
方式二:使用Random类(java. util)
Random random = new Random();
int ranNum = random.nextInt(10);
System.out.println(ranNum);
6、switch分支结构
语法:
switch (表达式) {
case 常量1:
语句;
break;
case 常量2:
语句;
break;
…
default:
语句;
}
注意:
1)表达式支持的基本类型:int,byte,short,char,特殊类型:枚举类型,String类型
2)每个case匹配执行结束,要加break关键字,分号结尾,作用是结束分支结构
3)case后面的常量值,不能重复
4)default的顺序,没有固定要求,但是一般建议写在最后,且加上break;关键字,也可以省略不写
7、switch和多重if的异同
相同点:
都是用于处理多分支条件判断
不同点:
switch:只能处理等值的条件判断
多重if:没有switch的条件限制,一般用于连续的区间条件判断(某个值在固定的区间范围内)
作业
要求:按照下面菜单,选择1,进入系统主菜单,选择2,谢谢使用
入口菜单:
主菜单:
作业2:
综合运用嵌套if选择结构、switch选择结构、多重if选择结构实现商品换购功能
一
package com.kgc;
import java.util.Scanner;
public class Zuoye01 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println();
System.out.println("\t\t欢迎使用我行我素购物管理系统");
System.out.println();
System.out.println("\t\t\t1、登入系统");
System.out.println();
System.out.println("\t\t\t2、退出");
System.out.println();
System.out.println("***********************************");
System.out.print("请选择,输出数字:");
int num = input.nextInt();
switch (num) {
case 1:
System.out.println("\t\t欢迎使用我行我素购物管理系统");
System.out.println();
System.out.println("***********************************");
System.out.println();
System.out.println("\t\t\t1、客户信息管理");
System.out.println();
System.out.println("\t\t\t2、购物结算");
System.out.println();
System.out.println("\t\t\t3、真情回馈");
System.out.println();
System.out.println("\t\t\t4、注销");
System.out.println();
System.out.println("***********************************");
break;
case 2:
System.out.println("谢谢您的使用");
break;
default:
System.out.println("你的输入有误!");
break;
}
input.close();
}
}
package com.kgc;
import java.util.Scanner;
public class Zuoye02 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print("请输入消费金额");
double xiaoFei = input.nextInt();
if (xiaoFei >= 50) {
System.out.println("是否参与优惠换购活动:");
System.out.println("1:满50元,加2元换购百事可乐1瓶");
System.out.println("2:满100元,加3元换购500ml可乐一瓶");
System.out.println("3:满100元,加10元换购5公斤面粉");
System.out.println("4:满200元,加10元可换购1个苏泊尔炒菜锅");
System.out.println("5:满200元,加20元可换购欧莱雅爽肤水一瓶");
System.out.println("0:不换购");
System.out.print("请选择:");
int num = input.nextInt();
switch (num) {
case 1:
System.out.println("本次消费总金额:" + (xiaoFei + 2));
System.out.println("成功换购:百事可乐一瓶");
break;
case 2:
if (xiaoFei < 100) {
System.out.println("您的金额未到不可换购");
} else {
System.out.println("本次消费总金额:" + (xiaoFei + 3));
System.out.println("成功换购:500ml可乐一瓶");
}
break;
case 3:
if (xiaoFei < 100) {
System.out.println("您的金额未到不可换购");
} else {
System.out.println("本次消费总金额:" + (xiaoFei + 10));
System.out.println("成功换购:5公斤面粉");
}
break;
case 4:
if (xiaoFei < 200) {
System.out.println("您的金额未到不可换购");
} else {
System.out.println("本次消费总金额:" + (xiaoFei + 10));
System.out.println("成功换购:1个苏泊尔炒菜锅");
}
break;
case 5:
if (xiaoFei < 200) {
System.out.println("您的金额未到不可换购");
} else {
System.out.println("本次消费总金额:" + (xiaoFei + 20));
System.out.println("成功换购:欧莱雅爽肤水一瓶");
}
break;
case 0:
System.out.println("本次消费总金额:" + xiaoFei);
System.out.println("您未换购");
break;
default:
System.out.println("输入有误");
break;
}
} else {
System.out.println("您不能参与换购!");
}
input.close();
}
}