JAVA基础(13)---顺序和选择控制语句

版权声明:如需转载请标明出处 https://blog.csdn.net/yj201711/article/details/83584929

 流程控制

Java中的流程控制有三类:顺序控制、选择控制和循环控制

顺序控制语句       

在Java中的程序的执行流程:
                         从main方法开始执行,从main方法的方法体的第一句开始执行,依次按照语句的先后顺序:从上而下  逐句执行。

选择控制语句(1)

在程序的执行过程当中,在某些时候,我们对代码的执行,需要在满足一定的条件之后才去执行。

在Java如何来表示这些条件呢?

选择结构的第一种表示形式

                       if(条件表达式/布尔表达式){
                                                  执行语句;
                                       }

选择结构的第二种表示形式
                                 if(条件表达式/布尔表达式){
                                                    语句1;
                                      }else{
                                                    语句2;
                                     }

选择结构的第三种表示形式
                               if(条件表达式1){
                                       语句1;
                                    }else if(条件表达式2){
                                                    语句2;
                                    }else if(条件表达式3){
                                                    语句3;
                                   }
                                                     ...

 选择结构的第四种表示形式
                              if(条件表达式1){
                                     语句1;
                                  }else if(条件表达式2){
                                                     语句2;
                                  }else if(条件表达式3){
                                                     语句3;
                                  }
                                                       ...
                                   else{
           
                                 }

选择结构的第五种表示形式
                            if(条件表达式1){
                                   if(条件表达式1-1){
                                           语句1-1;
                                     }else if(条件表达式1-2){
                                           语句1-2;
                                    }
                            }else if(条件表达式2){
                                     if(条件表达式2-1){
                                             语句2-1;
                                  }else if(条件表达式2-2){
                                             语句2-2;
                            }else{
                
                         }
            
                         }else{
            
                       }

总结:   

针对Java中的选择结构 if       

基本形式:

            if(条件表达式){
            
            }else if(){
            
            }else{
            
            }

在以上的三个大括号之间 可以出现我们所接触过的任何的代码,包括我们 if 的五种结构的任意一种或多种。if 可以单独出现,但是else绝对不能单独出现,必须和if一起出现。

/*
	程序是针对特定的问题  给出特定的解决方案
	程序所结局的问题就成为程序的需求
	需求1 在学生考试中,如果成绩达到60  则视为考试合格
	代码书写规范:
	  1 在代码编写过程中,所有的标识符的命名必须严格按照Java中的标识符的命名规则来进行命名;
	  2 对于标识符的命名,需要做到见名知意;
	  3 除成员 变量 的声明语句之外的所有的语句都必须写在方法的内部;
	  4 程序的结构一定要足够良好:如果当前语句在的上一级有大括号,
	    那么当前语句就应当比上一级缩进一个tab键
	  5 大括号需要成对出现:再写代码的过程中, 一般先写代码的结构,然后再去填充结构中所需要的代码;
	  6 在所有的表达式中,运算符的两端与操作数之间需要预留一个空格的位置
	需求2:在学生考试中,如果成绩达到60  则视为考试合格 否则  很遗憾  你要参加补考了
	需求3:对考试成绩进行分类评定
			100 -- 90 优秀
			80--90 良好
			60 -- 80 合格
			> 60 不合格
*/
public class IfDemo1{
	public static void main(String[] args){
		
                //int score = 82;
		
                /*在学生考试中,如果成绩达到60  则视为考试合格
		if(score >= 60){
			System.out.println("成绩合格!");
		}
		*/
		/*

		在学生考试中,如果成绩达到60  则视为考试合格 否则  很遗憾  你要参加补考了
		*/
		
                /*
		if(score >= 60){
			System.out.println("恭喜你,你的考试通过了!");
		}else{
			System.out.println("很遗憾,你需要参加补考了!");
		}	
		*/
		
                /*
			需求3:对考试成绩进行分类评定
			100 -- 90 优秀
			80--90 良好
			60 -- 80 合格
			> 60 不合格
		*/
		
                /*
		if( score <=100 && score >=90){
			System.out.println("优秀");
		}else if(score< 90 && score >=80){
			System.out.println("良好");
		}else if(score < 80 && score >=60){
			System.out.println("合格");
		}else if (score < 60){
			System.out.println("不合格");
		}*/
		
                /*
		if( score <=100 && 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("不合格");
		}
		*/
		
                /*
			需求4:对考试成绩进行分类评定 成绩必须在0--100之间
					如果成绩超出了0--100的范围  则提示用户 输入的成绩非法
			100 -- 90 优秀
			80--90 良好
			60 -- 80 合格
			> 60 不合格
			自行完成需求5: 针对人的年龄(0--120),
					0 --5  儿童
					5--18  少年
					18--30 青年
					30--60 中年
					60 --120 老年
		*/
		
                /*
		if(score <= 100 && score >0){
			if( score <=100 && 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("你的成绩不合法,请确认你的成绩");
		}
		*/
		
                /*
			获取用户从键盘输入的内容:
		*/
		//int score;
		//获取用户键盘输入的值:
		//java.util.Scanner sc = new java.util.Scanner(System.in);
		// 从键盘输入的值,一类是我们的基本数据类型  二类引用类型 String
		// sc.nextInt(); 代表从键盘输入一个整数
		// sc.next();代表从键盘输入一个字符串
		
                /*System.out.println("请输入您的成绩:");
		score = sc.nextInt();
		if(score <= 100 && score >0){
			if( score <=100 && 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("你的成绩不合法,请确认你的成绩");
		}
		*/
		
                /*
			从键盘输入字符串
			需求6:从键盘输入账号和密码  如果账号是admin  密码是123456 则认为
			用户是注册用户 而且账号和密码正确,正常登录,提示登陆成功,否则提示
			账号或密码错误。
		*/
		
                /*java.util.Scanner sc = new java.util.Scanner(System.in);
		String username ;
		String password;
		System.out.println("请输入您的账号:");
		username = sc.next();
		System.out.println("请输入您的密码:");
		password = sc.next();
		if(username.equals("admin") && password.equals("123456")){
			System.out.println("登陆成功");
		}else{
			System.out.println("您输入的账号或密码错误");
		}*/
		
                /*
			需求7:今天要出门 :如果天下雨 需要带雨伞   下雨 0  不下雨 1
			如果不下雨  0 代表男生  1 代表女生
				如果是男生 则带墨镜
				如果是女生:需要涂防晒霜

		*/
		
                /*
		int weather ;
		int sex;
		java.util.Scanner sc = new java.util.Scanner(System.in);
		System.out.println("请输入今天的天气情况(0-下雨  1-晴天)");
		weather = sc.nextInt();
		if(weather == 0){
			System.out.println("请出门时记得带上雨伞!");
		}else if(weather == 1){
			System.out.println("请输入您的性别");
			sex = sc.nextInt();
			if(sex == 0 ){
				System.out.println("今天天气不错,戴上墨镜 ,出去约个会");
			}else if(sex == 1){
				System.out.println("今天天气太晒,涂点防晒霜 ,出去约个会");
			}else{
				System.out.println("你是不搞错了,你的性别有问题");
			}
		}*/
		
                /*
		针对需求二:做一个更改
			如果成绩大于等于60 就是合格  如果小于60 不合格
		if(score >= 60){
			System.out.println("恭喜你,你的考试通过了!");
		}else{
			System.out.println("很遗憾,你需要参加补考了!");
		}	
		*/
		
                int score = 50;
		if(score >= 60){
			;//这个也是一条语句 空语句 什么都不做
			System.out.println("恭喜你,你的考试通过了!");
			}
		else{
			System.out.println("很遗憾,你需要参加补考了!");
			}
	}
}

选择控制语句(2)

           switch结构:
                           switch(表达式){
                                 case 值1:
                                       语句1;
                                       break;
                                 case 值2:
                                       语句2;
                                        break;
                                        ...
                                     default:
                                    语句n+1;
                                    break;           
                               }
在switch后的表达式的类型byte、short、int、char。jdk5 引入一个新的类型:枚举,jdk7 引入一个新的类型:String

 需求1:一星期有7天,让用户从键盘输入一个整数,1--7对应我们的星期一到星期天

public class SwitchDemo1{
	
	public static void main(String[] args){
		int week = 0;
		java.util.Scanner sc = new java.util.Scanner(System.in);
		System.out.println("请输入你要查询的数字(1--7):");
		week = sc.nextInt();
		switch(week){
			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("您的输入有误,请输入1--7之间的数字。");
				break;
		}
	
	
	}

}

注意事项:
    1、break 的作用:防止 switch 穿透的出现;   break;   就是针对当前值执行之后结束整个 switch 的判断;
    2、case 后面的值不允许重复;
    3、default 可以出现在 switch 中的任意位置而且在default之后也必须加上break;

需求2:一年有12个月 按照月份,将一年分为了四季,让用户从键盘输入一个月份值,然后通过程序来判断当前月份属于哪一个季节?

/*
需求2:一年有12个月 按照月份,将一年分为了四季
		12 1 2 冬季
		3 4 5 春季
		6 7 8 夏季
		9 10 11 秋季
		让用户从键盘输入一个月份值,然后通过程序来判断当前月份属于哪一个季节?
*/
import java.util.Scanner;
public class SwitchDemo2{
	public static void main(String[] args){
		//从键盘获取用户输入
		Scanner sc = new Scanner(System.in);
		int month = 0 ;
		System.out.println("请输入你要查询的月份:");
		month = sc.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("您的输入有误,请输入正确的月份值!");
		}

	
	}
}

在switch中,如果多个case对应的情况是相同的,那么就没有必要在每一个case后面都写上对应的处理,只需要在相同的case的最后一个case之后写上共同的处理语句就可以了,同样break不能省略。

需求:通过程序查询 一 到十 所对应的繁体字

import java.util.Scanner;
public class SwitchDemo3{

	public static void main(String[] args){
		Scanner sc = new Scanner(System.in);
		System.out.println("请输入你要查询的数字对应的汉字:");
		String num = "";
		num = sc.next();
		switch(num){
			case "一":
				System.out.println("壹");
				break;
			case "二":
				System.out.println("贰");
				break;
			case "三":
				System.out.println("叁");
				break;
			case "四":
				System.out.println("肆");
				break;
			case "五":
				System.out.println("伍");
				break;
			case "六":
				System.out.println("陆");
				break;
			case "七":
				System.out.println("柒");
				break;
			case "八":
				System.out.println("捌");
				break;
			case "九":
				System.out.println("玖");
				break;
			case "十":
				System.out.println("拾");
		}
	}
}

if和switch的区别以及其应用的场景:

        区别:if 针对的 boolea 值进行判断, if 判断的是一个范围;switch  针对的是一些特定的值而且这些是可列举的(case的情况是有限的)

       联系:凡是能够使用switch的 一定能够使用 if; 但是能使用 if 的不一定能使用switch
       

 需求:剪刀、石头、布 让用户从键盘输入一个对应的数字,那么这个数组就对应着我们的剪刀、石头、布 中的一种当用户选择完成之后,我们需要针对用户的选择做出相应的判决

/*
需求:剪刀、石头、布 让用户从键盘输入一个对应的数字,那么这个数组就对应
	着我们的剪刀  石头 布中的一种
	当用户选择完成之后,我们需要针对用户的选择  做出相应的判决

*/
import java.util.Scanner;
public class SelectDemo{
	public static void main(String[] args){
		Scanner sc = new Scanner(System.in);
		System.out.println("游戏开始");
		int first =0;
		int second = 0;
		System.out.println("请第一位选手做出选择(1-3)1:剪刀  2:石头 3 布:");
		first = sc.nextInt();
		switch(first){
			case 1:
				System.out.println("你所选择是:剪刀");
				break;
			case 2:
				System.out.println("你所选择是:石头");
				break;
			case 3:
				System.out.println("你所选择是:布");
				break;
		}
		System.out.println("请第二位选手做出选择(1-3)1:剪刀  2:石头 3 布:");
		second = sc.nextInt();
		switch(second){
			case 1:
				System.out.println("你所选择是:剪刀");
				break;
			case 2:
				System.out.println("你所选择是:石头");
				break;
			case 3:
				System.out.println("你所选择是:布");
				break;
		}
		System.out.println("你们的结果为:");
		if(first == 1 && second == 3 || first == 2 && second ==1 || first == 3 && second == 2 ){
			System.out.println("第一位选手获胜");
			
		}else if(second == 1 && first == 3 || second == 2 && first ==1 || second == 3 && first == 2){
			System.out.println("第二位选手获胜");
			
		}else{
			System.out.println("平局");
		}
	
	}

}

猜你喜欢

转载自blog.csdn.net/yj201711/article/details/83584929
今日推荐