zoukankan      html  css  js  c++  java
  • 选择结构

    3、选择结构

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

    ​ 关系运算符(>,>=,<,<=,==,!=).
    引用数据类型表比较用equals(),语法:引用类型变量1.equals(引用类型变量2);

    eg:public static void main(String[] args){
    	//准备变量
    	int num1=11;
    	int num2=11;
    	//基本数据类型表比较
    	boolean result1=num1==num2;
    	System.out.println(result1);	
    	//声明引用数据类型
    	String s1="abc";
    	String s2="abc";
    	boolean result2=s1.equals(s2);
    	System.out.println(result2);
    }
    

    2.Java中结构

    ​ 2.1:顺序结构.
    ​ 2.2:选择结构
    ​ 2.3:循环结构

    3.基本if选择结构:用来解决只有一种(单分支)情况的问题.

    ​ 3.1:语法:if(条件){
    ​ 语句块;
    ​ }

    ​ 3.2:执行流程:如果条件成立,执行语句块;如果条件不成立,就跳过基本if选择结构,执行之后 语句.

    
    eg:public static void main(String[] args){
    	//获得具有从键盘上接收数据的能力
    	Scanner input=new Scanner(System.in);
    	
    	System.out.println("你是否有女朋友?(y表示有,其他表示没有)");
    	//从键盘上接收结果并存在变量中
    	String answer=input.next();
    	
    	if(!answer.equals("y")){
    		System.out.println("加油学技术,让千锋给你分配一个女朋友");
    	}
    }
    题目:你每天晨考是否考了100分,如果是,周五老师请吃饭
    

    4.if-else结构:用来解决有两种情况,且两情况无论如何都会执行其中一种.

    ​ 4.1:语法:if(条件){
    ​ 语句块1;
    ​ }else{
    ​ 语句块2;
    ​ }
    ​ 4.2:执行流程:如果条件为true,就执行语句块1;如果条件为false,就执行语句块2.

    
    	eg:public static void main(String[] args){
    	//获得具有从键盘上接收数据的能力
    	Scanner input=new Scanner(System.in);
    	
    	System.out.println("是否每天晨考考了一百分?(y表示是,其他表示否)");
    	//从键盘上接收结果,并存在变量中
    	String answer=input.next();
    	
    	if(answer.equals("y")){
    		System.out.println("周五老师请吃饭");
    	}else{
    		System.out.println("抄写10遍");
    	}
    }
    题目:问你是否有女朋友,如果有,找到高薪工作后就结婚;如果没有,找到高薪工作后,千锋给你分配一个女朋友.
    

    5.多重if选择结构:解决有两种及以上情况分支判断问题.

    5.1:语法:if(条件1){
    			语句块1;
    		}else if(条件2){
    			语句块2;
    		}else if(条件3){
    			语句块3;
    		}else{
    			else块;
    		}
    

    5.2:执行流程:判断条件1,如果条件1为true,就执行语句块1,语句块1执行完,就执行多重if结构之后的语句;如果条件1为false,就判断条件2,如果条件2为true,就执行语句块2, 语句块2执行完,就执行多重if结构之后的语句;如果条件2为false,就判断条件3,如果条件3为true,就执行语句块3,语句块3执行完,就执行多重if结构之后的语句;如果条件3为false,就无条件执行最后else块.

    5.3:结构特点:
    5.3.1:在多重if选择结构中if块有且仅有一个.
    else-if块可以有0个到多个.
    else块可以有0个到1个.
    5.3.2:在多重if选择结构中最多执行一个语句块(一种分支),最少什么都不执行.
    5.3.3:用多重if选择结构解决范围(区间)判断问题时,分支之间不一定能互换位置.
    用多重if选择结构解决等值判断问题时,分支之间可以互换位置,不影响结果.

    	eg:public static void main(String[] args){
    	//获得具有从键盘上接收数据的能力
    	Scanner input=new Scanner(System.in);
    	
    	System.out.println("请输入你的成绩:");
    	//从键盘上接收成绩并存在变量中
    	double score=input.nextDouble();
    	//在Java中不支持 60<=score<=80这种写法,60<=score&&score<=80
    	if(score>=90){
    		System.out.println("优秀");
    	}else if(score>=80&&score<90){
    		System.out.println("良好");
    	}else if(score>=60&&score<80){
    		System.out.println("合格");
    	}else{
    		System.out.println("再接再厉");
    	}
    }
    				
    	eg: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==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.嵌套选择结构:在一个选择结构的大括号中完整包含另一个选择结构.

    ​ 特点:选择结构之间可以任意嵌套,嵌套要正确.
    ​ 选择结构可以嵌套多层,目前嵌套两到三层居多.
    ​ eg:public static void main(String[] args){
    ​ //获得具有从键盘上接收数据的能力
    ​ Scanner input=new Scanner(System.in);

    	System.out.println("请输入今天是星期几?(输入1-7数字)");
    	int today=input.nextInt();
    	if(today>=1&&today<=7){
    		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("睡觉");
    		}
    	}else{
    		System.out.println("你的输入有误!");
    	}
    }
    

    题目:参加百米赛跑,问你跑步时间,如果时间大12秒,谢谢参与,如果时间小于等于12秒,就进入决赛,再问你性别,如果性别是男,恭喜进入男子组决赛,如果性别是女,恭喜进入女子组决赛.

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

    ​ 7.1:语法:switch(表达式){
    ​ case 值1:
    ​ 代码块1;
    ​ break;
    ​ case 值2:
    ​ 代码块2;
    ​ break;
    ​ ...
    ​ default:
    ​ default代码块;
    ​ break;
    ​ }
    ​ 7.2:执行流程:判断表达式结果等于case后面值1,就执行代码块1,遇到break或结尾}就跳出 switch结构,执行之后语句;如果表达式结果等于case后面值2,就执行代码块2, 遇到break或结尾}就跳出switch结构,执行之后语句;如果表达式结果不等于 case后面的任何一个值,就执行default代码块遇到break或结尾}就
    ​ 跳出switch结构.
    ​ 7.3:结构特点:
    ​ 7.3.1:switch结构中,表达式的结果在jdk1.7之前只支持byte,short,int,long,char(枚 举),在jdk1.7之后表达式还可以是String类型.
    ​ 7.3.2:在switch结构中,case可以有0个到多个,default可以有0个到1个.
    ​ 7.3.3:在同一个switch结构中,case后面的值不能相同.
    ​ 7.3.4:在switch结构,可以省略break,如果省略break,switch结构中表达式判断满足case 后面的值后,执行对应代码块,执行完后,没有break也没有遇到结尾},不再判断, 会一直执行下去,直到遇到break或结尾},才能跳出switch结构,这种现象 case贯穿.
    ​ 一般情况下,不建议大家省略break;
    ​ 7.3.5:在switch结构中,case块之间可以互换位置,不影响结果;
    ​ default块可以放在switch的大括号中任意位置,不影响结果.
    ​ 7.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;
    	}
    }
    
    	题目:如果今天是星期一,就给妈妈打电话;如果今天是星期二,就给奶奶打电话;如果今天			是星期三就给姐姐打电话,如果今天是星期四就给朋友打电话.
    

    8.多重if VS switch

    ​ 8.1:相同点:
    ​ 8.1.1:都可以解决多种情况等值判断问题.(首选switch结构)
    ​ 8.1.2:都可以执行0种情况.

    8.2:不同点:
    	8.2.1:多重if结构既可以解决多种情况等值判断问题,也可以解决多种情况范围(区间)判					断问题;switch结构只能解决多种情况的等值判断问题.
    	8.2.2:switch结构的case块(分支情况)可以互换位置,不影响结果;多重if结构在解决等				值判断问题时分支间可以互换位置,不影响结果,但是在解决区间判断问题时分				支间不一定可以互换位置.
    	8.2.3:多重if结构最多执行一种分支情况;switch结构最多执行所有分支情况.
    	8.2.4:多重if结构的条件的结果是boolean类型;switch结构的表达式的结果,在jdk1.7之				前只支持byte,short,int,long,char(枚举),在jdk1.7之后表达式还可以是					String类型.
    	8.2.5:多重if结构中没有break关键字;switch结构中可以有break关键字,它的作用是跳				出switch结构.
    	8.2.6:多重if结构中每个条件可以写一个判断式子,也可以写多个判断式子只要式子间用				逻辑运算符连接;switch结构条件只能是一个式子.
    

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

    ​ 局部变量不赋值是没有值,就不能使用.
    ​ 局部变量的作用范围,仅在声明它的大括号中有效.

    总结:

    1.数据类型比较
    2.java执行结构
    3.基本if选择结构
    4.if-else
    5.多重if结构
    6.嵌套选择结构
    7.switch结构
    8.多重if VS switch
    9.局部变量的作用范围

  • 相关阅读:
    nor flash之4字节地址模式
    DroidVim:在安卓手机上使用vim
    从linux命令行分享文件:bashupload.com和transfer.sh
    记一个实时Linux的中断线程化问题
    nor flash之写保护开销
    第七届开源操作系统会议(OS2ATC 2019)见闻及资料分享
    nor flash之擦除和写入
    PyCharm 远程调试代码
    【图像分析】形态学
    【强化学习】DQN 算法改进
  • 原文地址:https://www.cnblogs.com/lidelong/p/14190834.html
Copyright © 2011-2022 走看看