Java SE笔记(3)

Java SE笔记

三.Java流程控制语句
1.流程控制

  • 程序的执行是多种多样的
    (1)可能自上而下
    (2)可能根据条件进行跳转
    (3)可能需要进行重复操作
  • Java利用流程控制语句对这些复杂操作进行控制。
  • 流程控制语句包括:
    顺序结构、选择结构、循环结构、跳转语句。

2.顺序结构

  • 自上而下进行
  • 顺序执行语句,直到结束

3.选择结构

  • 选择结构或分支结构,根据一个判断表达式的结果不同,执行不同的语句。
  • 选择结构包括if、switch

if语句

  • 条件表达式可以是任何一种逻辑表达式
    • 如果表达式的值为false,则直接执行后面的语句
  • 如果大括号中,只有一条语句,可以省略大括号(推荐不省略);
    在这里插入图片描述
    在这里插入图片描述
int x = 0;
		if(x==1){
			System.out.println("x的值为1");
		}
		System.out.println("x的值为"+x);

x的值为0

if else语句

  • 变量 = 布尔表达式 ? 语句1:语句2
    • 如果布尔表达式的值为true,则执行语句1
    • 如果布尔表达式的值为false,则执行语句2
      在这里插入图片描述
      在这里插入图片描述
int x = 1;
		int y = 0;
		if(x<y){
			System.out.println("x比y小");
		}else{
		System.out.println("x比y大");
		}

x比y大

  • 在控制台输入使用Scanner类,位于java.util表
Scanner scan = new Scanner(System.in);
		System.out.println("请输入第一个数:");
		int x = scan.nextInt();
		System.out.println("请输入第二个数:");
		int y = scan.nextInt();
		if (x>y){
			System.out.println("第一个数大于第二个数");
		}else{
			System.out.println("第二个数大于第一个数");
		}

请输入第一个数:
2
请输入第二个数:
5
第二个数大于第一个数

复杂条件选择结构

  • 判断条件:需要多种情况作为判定条件的时候,使用逻辑运算符连接,根据需要选择使用&&、||或!
int score = 90;
	if (score>=90&&score<=100){
		System.out.println("成绩 优秀");
	}

成绩 优秀

4.多重选择结构
在这里插入图片描述
在这里插入图片描述

int score = 90;
	if (score<60){
		System.out.println("成绩不合格");
	}else if(score<75){
		System.out.println("成绩合格");
	}else if(score<90){
		System.out.println("成绩良好");
	}else{
		System.out.println("成绩优秀");
		}

成绩优秀

5.嵌套选择结构
在这里插入图片描述

  • 足球比赛,积分高的进入下一级比赛,如果两队积分一致,需要输入进球数量。比较进球数量
Scanner scan = new Scanner(System.in);
		int team_a = 5;
		int team_b = 5;
		if(team_a==team_b){
			System.out.println("请输入A队进球数");
			int num_a = scan.nextInt();
			System.out.println("请输入B队进球数");
			int num_b = scan.nextInt();
			if(num_a>num_b){
				System.out.println("A队出线,进入下一轮比赛");
			}else{
				System.out.println("B队出线,进入下一轮比赛");
			}
		}else{
			if(team_a>team_b){
				System.out.println("A队出线,进入下一轮比赛");
			}else{
				System.out.println("B队出线,进入下一轮比赛");
			}
		}

请输入A队进球数
3
请输入B队进球数
5
B队出线,进入下一轮比赛

6.switch选择结构

  • 多分支结构,可以代替复杂的if选择结构
  • 在这里插入图片描述
    switch语句有关规则
  • switch(表达式)中表达式的返回值必须是下述几种类型之一:int, byte, char, short, 枚举, 字符串(jdk1.7后);
  • case子句中的值必须是常量,且所有case子句中的值应是不同的;
  • default子句是任选的;
  • break语句用来在执行完一个case分支后使程序跳出switch语句块;
  • 表达式值与case值相等,执行后面的语句,遇到break后退出switch
  • 如不设置break;后续case会全部执行

在这里插入图片描述

int n = 2;
		int result;
		switch(n+1){
		case 1: System.out.println("Block A");
					result = n;
					break;
		case 2:System.out.println("Block B");
					result = n*n;
					break;
		case 3:System.out.println("Block C");
					result = n*n*n;
					break;
		default: result = 0;
		}
		System.out.println("result="+result);

Block C
result=8

Scanner scan = new Scanner(System.in);
		System.out.println("请输入一个月份,我能告诉你它属于什么季节");
		int month = scan.nextInt();
		switch(month){
		case 12:
		case 1:
		case 2:
			System.out.println("您输入的月份为冬季。");
			break;
		case 3:
		case 4:
		case 5:
			System.out.println("您输入的月份为春季。");
			break;
		case 6:
		case 7:
		case 8:
			System.out.println("您输入的月份为夏季。");
			break;
		case 9:
		case 10:
		case 11:
			System.out.println("您输入的月份为秋季。");
			break;
		default:
			System.out.println("没有"+month+"月份");
		}

请输入一个月份,我能告诉你它属于什么季节
11
您输入的月份为秋季。

  • switch 做一个简单的计算器
Scanner sc = new Scanner(System.in);
		System.out.println("请输入第一个数");
		int a = sc.nextInt();
		System.out.println("请输入运算符号【+ - * /】");
		String b = sc.next();
		System.out.println("请输入第二个数");
		int c = sc.nextInt();
		switch (b){
			case "+" :System.out.println("计算结果:"+a+"+"+c+"="+(a+c));
					break;
			case "-" :System.out.println("计算结果:"+a+"-"+c+"="+(a-c));
					break;
			case "*" :System.out.println("计算结果:"+a+"*"+c+"="+(a*c));
					break;
			case "/" :System.out.println("计算结果:"+a+"/"+c+"="+(a/c));
					break;
			default: System.out.println("错误");
		}

请输入第一个数
1
请输入运算符号【+ - * /】
+
请输入第二个数
2
计算结果:1+2=3

多重if结构和switch结构的比较

  • 根据具体的情况选择使用合适条件结构
    • 多重if结构和switch结构都可以用来实现多路分支。
    • 多重if结构用来实现两路、三路分支比较方便,而switch结构实现三路以上分支比较方便。
    • 有些问题只能使用多重if结构来实现,例如要判断一个值是否处在某个区间的情况。
  • 使用switch结构有一定的局限性
    • 在使用switch结构时,应注意分支条件要求是整型表达式、字符串或枚举类型,而且case语句后面必须是常量表达式。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值