3. java之选择结构

1.从键盘上接收数据

第一步:在类前面导包import java.util.Scanner;
第二步:在需要接收数据前获得接收数据的能力
		//获得具有从键盘上接收数据的能力
	    Scanner input=new Scanner(System.in);
第三步:用接收能力去接收数据
		接收int数据:  input.nextInt();
		接收double数据: input.nextDouble();
		接收String数据: input.next();
	  注意:不能从键盘上接收char类型数据.

2.基本数据类型(byte,short,int,long,float,double,char,boolean)表比较,
用关系运算符(>,>=,<,<=,!=,==).

  String表比较: 字符串1.equals(字符串2);
	eg://基本数据类型表比较
		int num4=11;
		int num5=11;
		System.out.println(num4==num5);
		
		//String类型表比较
		String s1="abc";
		String s2="abc";
		System.out.println(s1.equals(s2));

3.Java中结构

3.1:顺序结构.
3.2:选择结构.
3.3:循环结构.

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

4.1:语法:if(条件){
		代码块;
	}
4.2:执行流程:如果条件为true,就执行代码块,再if结构之后的语句;如果条件为false,就执行之后的语句.
		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("今天为了庆祝程序员节放假");
		}
   }

5.if-else结构:

解决有两种情况,这两种情况无论如何都要执行其中一种.
	5.1:语法:if(条件){
				代码块1;
			}else{
				代码块2;
			}

5.2:执行流程:如果条件为true,就执行if大括号中代码块1;如果条件为false,就执行else大括号中代码块2,再执行结构之后的语句.
		eg:public static void main(String[] args){
		//获得具有从键盘上接收数据的能力
		Scanner input=new Scanner(System.in);	
		System.out.println("请问你是否有女朋友?(输入y表示有,其他表示没有):");
		String answer=input.next();
		//用if-else结构判断
		if(answer.equals("y")){
			System.out.println("今天为了庆祝程序员节,放假");
		}else{
			System.out.println("今天为了庆祝程序员节,学校送一个女朋友");
		}
	}
			

6.多重if选择结构:

解决有两种或两种以上情况的问题.
	6.1:语法:if(条件1){
				代码块1;
			}else if(条件2){
				代码块2;
			}else if(条件3){
				代码块3;
			}else{
				代码块4;
			}

在这里插入图片描述
6.2:执行流程:

先判断条件1,如果条件1为true,就执行代码块1;如果条件1为false,就判断条件2
			如果条件2为true,就执行代码块2;如果条件2为false,就判断条件3;	
			如果条件3为true,就执行代码块3;如果条件3为false,就直接执行else块中代码块4,
			再执行结构之后的语句

	6.3:结构特点:
		6.3.1:在多重if选择结构中,if块有且仅有一个,else if块可以0个到多个,
				else可以有0个到1个.
		6.3.2:多重if选择结构中,最多执行一种情况,最少一种情况都不执行.
		6.3.3:如果用多重if选择结构解决多种情况范围判断问题时,各种分支之间
					不一定可以互换位置;

	eg:public static void main(String[] args){
		//获得具有从键盘上接收数据的能力
		Scanner input=new Scanner(System.in);	
		System.out.println("请输入你的成绩:");
		double score=input.nextDouble();
		
		if(score>=90){
			System.out.println("优秀");
		}else if(score<=80&&score>=60){
			System.out.println("及格");
		}else if(score<90&&score>80){
			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(today==1){
			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 if(today==6){
			System.out.println("早餐吃牛肉粉");
		}else{
			System.out.println("睡懒觉");
		}
	}

7.嵌套选择结构:

在一个选择结构的大括号中完整包含另一个选择结构,就叫嵌套选择结构.
	7.1:所有的选择结构中都可以任意嵌套.
	7.2:选择结构可以嵌套多层,一般情况下嵌套三层居多.
	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("输入性别(男/女):");
			String sex=input.next();
			if(sex.equals("男")){
				System.out.println("恭喜你进入男子组决赛");
			}else if(sex.equals("女")){
				System.out.println("恭喜你进入女子组决赛");
			}else{
				System.out.println("性别不详");
			}
		}else{
			System.out.println("谢谢参与");
		}
	}

8.switch结构:解决多种情况的等值判断问题. 常量:具体的值.

8.1:语法:switch(表达式){
			case 常量1:
				代码块1;
				break;
			case 常量2:
				代码块2;
				break;
			default:
				default代码块;
				break;
		}
8.2:执行流程:先判断表达式的值,如果表达式的值等于case后面常量1,就执行代码块1,执行完代码块1,遇到break或者是结尾的大括号就跳出switch结构,执行之后的语句;
		如果表达式的值等于case后面常量2,就执行代码块2,执行完代码块2,遇到break或者是结尾的大括号就跳出switch结构,执行之后的语句;
		如果表达式的值不等于任何一个case后面的常量 ,就执行default中代码,执行完default代码块,遇到break或者是结尾的大括号就跳出switch结构,执行之后的语句;
8.3:结构特点:
	8.3.1:switch结构中表达式结果的类型,在java7之前支持byte、short、int、char、enum(枚举);java7之后可以是String
	8.3.2:switch结构中,case块可以有0个到多个,default有且仅有0个到1个.
	8.3.3:switch结构中,case块之间可以互换位置,不影响结果.default块也可以放在switch结构中任意位置.
	8.3.4:在同一个switch结构中,case后面常量值不可以相同,否则报错.
	8.3.5:一般情况下,switch结构中不能省略break,如果省略break,语法不报错,但是switch结构只会判断一次,执行case块中代码,然后没有break,会继续执行,后面不会再判断,直到遇到遇到break或者是结尾的大括号就跳出switch结构,执行之后的语句;			
	8.3.6: switch结构中最少执行0个分支情况,最多全部执行.

	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;
	}
}

9.多重if VS switch

9.1:相同点:
	9.1.1:都可以解决多种情况的等值判断问题.
	9.1.2:都是最少执行0种情况(分支).

9.2:不同点:
	9.2.1:多重if既可以解决多种情况的范围判断问题,又可以解决多种情况等值判断问题;
			switch结构只能解决多种情况等值判断问题.
	9.2.2:多重if结构最多只能执行一个分支情况;switch结构可以执行多个分支情况.
	9.2.3:多重if结构的条件可以是任意表达式,只要表达式结果是boolean;
		  switch结构中表达,在java7之前支持byte、short、int、char、enum	(枚举);
				java7之后可以是String.
	9.2.4:多重if结构中,各个分支之间不一定可以互换位置;
		  switch结构中,在不省略break情况下,各个分支之间可以互换位置,不影响结果;
	9.2.5:多重if结构中,执行完一个分支情况就跳出多重if结构中;
			 switch结构中,只有遇到break或者结尾大括号,才能跳出switch结构.

9.3:一般解决多种情况等值判断问题,首选switch结构.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值