2020/11/30 第三章 选择结构

第三章-选择结构

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();
	}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值