3.选择结构

@一贤不穿小鞋

1.基本数据类型(byte,short,int,long,float,double,char,boolean)表比较,

  • 用关系运算符(>,>=,<,<=,!=,==).
  • String表比较: 字符串1.equals(字符串2);
	eg:public static void main(String[] args){
		//准备几个变量
		int num1=11;
		int num2=11;
		String s1="abc";
		

		//基本数据类型表比较,用关系运算符
		boolean result1=num1==num2;

		//字符串表比较,用equals()
		boolean result2=s1.equals("abc");
		System.out.println("result1="+result1+",result2="+result2);
	}

2.Java中结构

  • 顺序结构
  • 选择结构
  • 循环结构

3.基本if选择结构:解决只有一种情况的问题.

3.1:语法:

if(条件){
代码块;
}
在这里插入图片描述

3.2:执行流程:

如果条件为true,就执行代码块,代码块执行完后就执行if结构之后的语句;如果条件为false,就直接执行if结构之后的语句;

	eg:public static void main(String[] args){
		//获得具有从键盘上接收数据的能力
		Scanner input=new Scanner(System.in);
		
		System.out.println("刘梦龙上课是否犯困?(y表示是,其他表示否):");
		//接收用户从键盘上输入,并存在一个变量中
		String answer=input.next();
		//基本if结构的使用
		if(answer.equals("y")){
			System.out.println("站着听讲");
		}
	}
题目:问自己是否有女朋友,如果有,双11就带女朋友去约会.

4.if-else结构:

  • 解决有两种情况,且两种情况无论如何都一定要执行其中一种情况.

4.1:语法:

if(条件){
代码块1;
}else{
代码块2;
}
在这里插入图片描述

4.2:执行流程:

如果条件为true,就执行代码块1;如果条件为false,就执行代码块2,代码块执行完后就执行if-else之后的语句.

	eg:	public static void main(String[] args){
		//获得具有从键盘上接收数据的能力
		Scanner input=new Scanner(System.in);
		
		System.out.println("你们是否有女朋友?(y表示是,其他表示否):");
		String answer=input.next();
		//第一种:if-else结构的使用
		if("y".equals(answer)){
			System.out.println("双11带女朋友去约会");
		}else{
			System.out.println("来教室敲代码");
		}
		
		//第二种:实现
		/*if("y".equals(answer)){
			System.out.println("双11带女朋友去约会");
		}
		
		if(!"y".equals(answer)){
			System.out.println("来教室敲代码");
		}*/
	}

5.多重if选择结构:

  • 解决有两种及以上情况判断问题.

5.1:语法:

if(条件1){
代码块1;
}else if(条件2){
代码块2;
}else if(条件3){
代码块3;
}else{
else中代码块;
}
在这里插入图片描述

5.2:执行流程:

判断条件1,如果条件1为true,就执行代码块1,执行完代码块1,就执行这个结构之后的语句;如果条件1为false,就判断条件2,如果条件2为true,就执行代码块2,执行完代码块2,就执行这个结构之后的语句;如果如果条件2为false,就判断条件3,如果条件3为true,就执行代码块3,执行完代码块3,就执行这个结构之后的语句;如果条件3为false,就无条件执行else中代码块,执行完后,就执行这个结构之后的语句.

5.3:多重if选择结构的执行特点:

  • 在多重if选择结构中,if块有且仅有一个;else if块可以有0个到多个;
    else可以有0个到1个.
  • 在多重if选择结构中,最多执行一种情况(一个分支),最少执行0种情况(0个分支).
  • 在多重if选择结构解决区间(范围)判断问题时,分支之间不一定能互换位置.
  • 在在多重if选择结构解决等值判断问题时,分支之间可以互换位置,不影响结果.
		eg:public static void main(String[] args){
		//获得具有从键盘上接收数据的能力
		Scanner input=new Scanner(System.in);
		
		System.out.println("请输入你的考试成绩:");
		double score=input.nextDouble();
		//多重if结构的使用
		//java中不可以90>score>=80,只能写成score<90&&score>=80
		if(score>=90){
			System.out.println("优秀");
		}else if(score<90&&score>=80){
			System.out.println("良好");
		}else if(score<80&&score>=60){
			System.out.println("合格");
		}else{
			System.out.println("再接再厉");
		}
	}
	public static void main(String[] args){
	//获得具有从键盘上接收数据的能力
	Scanner input=new Scanner(System.in);
	
	System.out.println("请输入今天是星期几?(只能输入1-7数字):");
	int today=input.nextInt();
	//多重if结构
	if(today==1){
		System.out.println("包子");
	}else if(today==6){
		System.out.println("粥");
	}else if(today==2){
		System.out.println("油条");
	}else if(today==3){
		System.out.println("海鲜");
	}else if(today==4){
		System.out.println("肠粉");
	}else if(today==5){
		System.out.println("蒸米粉");
	}else{
		System.out.println("睡觉");
	}
}
题目:今天星期一,给妈妈打个电话,如果今天是星期二给女朋友打个电话,
如果今天是星期三给爷爷打个电话,星期四给妹妹打个电话.

6.嵌套选择结构

  • 在一个选择结构的大括号中完整包含另一个选择结构.

6.1:选择结构之间可以随意嵌套,但嵌套要正确.

6.2:选择结构之间可以多层嵌套,一般目前最多嵌套三层.

	eg:public static void main(String[] args){
		//获得具有从键盘上接收数据的能力
		Scanner input=new Scanner(System.in);
		
		System.out.println("请输入你的考试成绩:");
		double score=input.nextDouble();
		if(score>=0&&score<=100){
			//多重if结构的使用
			//java中不可以90>score>=80,只能写成score<90&&score>=80
			if(score>=90){
				System.out.println("优秀");
			}else if(score<90&&score>=80){
				System.out.println("良好");
			}else if(score<80&&score>=60){
				System.out.println("合格");
			}else{
				System.out.println("再接再厉");
			}
		}else{
			System.out.println("你的输入有误!");
		}
	}
	题目:现在参加百米赛跑,请问你百米赛跑的时间,如果时间大于10秒,谢谢参与;
		如果时间小于或等于10秒就恭喜你进入决赛;再问你的性别,如果性别是男,
		就恭喜你进入男子组决赛,否则进入女子组决赛.
	eg:public static void main(String[] args){
		//获得具有从键盘上接收数据的能力
		Scanner input=new Scanner(System.in);
		
		System.out.println("现在参加百米赛跑,请问你百米赛跑的时间:");
		double time=input.nextDouble();
		if(time<=10){
			System.out.println("请输入性别(man表示男,其他表示女):");
			String sex=input.next();
			if(sex.equals("man")){
				System.out.println("恭喜你进入男子组决赛");
			}else{
				System.out.println("恭喜你进入女子组决赛");
			}
		}else{
			System.out.println("谢谢参与");
		}
	}

7.switch结构解决多种情况的等值判断问题.

常量:固定的值.

7.1:语法:

switch(表达式){
				case 常量1:
					代码块1;
					break;
				case 常量2:
					代码块2;
					break;
				  ...
				default:
					default代码块;
					break;
			}
  • 常见错误:
    无break、常量重复、default未放最后、jdk1.8之前不能用String类型必须是整型或字符型、

7.2:执行流程

  • 如果switch结构中表达式等于case后面常量1, 就执行代码块1,直到遇到break或结尾括号就跳出switch结构执行之后语句;
  • 如果switch结构中表达式等于case后面常量2,就执行代码块2,直到遇到break或结尾括号就跳出switch结构执行之后语句;
  • 如果switch结构中表达式不等于case后面任意一个常量,就默认执行default代码块直到遇到break或结尾括号就跳出switch结构执行之后语句;

7.3:结构特点:

  • switch结构的表达式在jdk1.7之前,支持byte,short,int,char,枚举(enum) 类型,在jdk1.7之后还支持String类型.
  • 在switch结构,case块可以0个到多个,default块可以0个到1个.
  • 在同一个switch结构,case后面的常量值不可以相同.
  • 在switch结构中,如果不省略break,最多执行一种情况(一个分支),最少什么都不执行(0个分支);如果省略break,switch结构会出现case贯穿现象(switch结构的表达式只会判断一次,从满足的case块开始执行代码,直到遇到结尾的大括号跳出结构)
  • 在同一个switch结构,case之间可以互换位置,不影响结构.
  • 在同一个switch结构,default块可以放在switch结构的大括号中任意位置.
		eg:public static void main(String[] args){
		//获得具有从键盘上接收数据的能力
		Scanner input=new Scanner(System.in);
		
		System.out.println("请输入今天是星期几?(只能输入1-7数字):");
		int today=input.nextInt();
		
		switch(today){
			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.println("你的输入有误!");
				break;
		}
	}

8.多重if VS switch

8.1:相同点:

  • 都可以解决多种情况的等值判断问题.
  • 都是最少执行0种情况.

8.2:不同点:

  • 多重if结构既可以解决多种情况的等值判断问题,也可以解决多种情况的范围判断判断问题;switch结构只能解决多种情况的等值判断问题.
  • 多重if结构的条件的结果是boolean类型.
    switch结构的表达式的结果类型在jdk1.7之前可以是byte,short,int,char类型
    在jdk1.7之后还可以是String类型
  • 多重if选择结构最多执行一种情况(一种分支);
  • switch结构最多可以执行多种情况(省略break后).
  • 多重if结构的分支之间不一定可以互换位置;
  • switch结构的分支之间可以互换位置;
  • 多重if结构在执行完一种分支后就跳出多重if结构;
    switch结构在执行完一种分支后只有遇到break或结尾大括号才会跳出switch结构.

8.3:在解决多种情况的等值判断问题时,多重if结构和switch结构都可以解决,但是switch结构解决.

9.局部变量:在方法中声明的变量叫局部变量.

  • 成员变量:在类中,且在方法外面声明的变量叫成员变量.
    注意:局部变量的作用域(范围)仅在声明它的大括号中有用.

总结:
1.赋值运算符
2.运算优先级
3.三元运算符
4.表达式
5.从键盘上接收用户输入的数据(重点)
6.基本数据类型的比较和String的比较(重点)
7.基本if结构(重点)
8.基本if-else结构(重点)
9.多重if结构(重点)
10.嵌套选择结构
11.switch结构(重点)
12.多重if结构和switch结构的区别

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值