zoukankan      html  css  js  c++  java
  • 12.26笔记与作业

    流程控制--选择结构与循环结构

    1、流程控制结构:顺序结构、选择结构和循环结构

      1)、顺序结构:程序从上向下依次执行每条语句的结构;

      2)、选择结构:根据条件判断的结果来选择执行不同的代码;

          有if控制语句和switch语句

      3)、循环结构:根据判断条件来重复性地执行某段代码;

          有while语句、do-while语句、for语句

    2、选择结构有if控制语句和switch语句

      1)、if控制语句有3种不同的形式,分别为单分支结构、双分支结构和多分支结构

        A、单分支结构:

        if(表达式){

          语句;

        }

        a、if为关键字;

        b、表达式为布尔类型的表达式,结果为true或false;

        B、双分支结构:

        if(表达式){

          语句1;

        }else{

          语句2;

        }

        执行步骤:

          对表达式进行判断,结果为true,则执行语句1;反之执行语句2;

        PS:else子句不能单独使用,必须是IF语句的一部分,与最近的if语句配对使用;else后可再进行if语句,进行多分支选择

        C、使用复杂条件的IF选结构

          结合运算符的优先级编写条件:

            a、最高的优先级:();

            b、最低的优先级:=;

            c、优先级:!>算术运算符>关系运算符>&&>||

            d、复杂条件使用括号提高可读性

      2)、switch语句

         A、语法格式

        switch(){

        case 常量1:

          语句;

          break;

        case 常量1:

          语句1;

          break;

        case 常量1:

          语句2;

          break;

        default:

          语句3;

        }

        注:1、switch、case、break、defaultj为JAVA关键字;  

          2、switch后的表达式只能是整型、字符型或枚举类型;

          3、case用于与表达式进行匹配;

          4、default是可选的,当其他条件都不匹配时执行default;

    3、作业

      A、假如你准备去海南旅游,现在要订购机票。机票价格受季节旺季、淡秀影响,而且头等舱和经济舱价格也不同。假设机票原价为5000元,4~10月为旺秀,旺秀头等舱打9折, 经济舱打6折,其他月份为淡季,头等舱打5折,经济舱打4折。请编写程序,根据出行的月份和选择的舱位输出实际价格。

      

    import java.util.Scanner;
    //计算淡旺秀出行的机票价格
    public class JiPiao {
    	public static void main(String[] args) {
    		Scanner cxj = new Scanner(System.in);
    
    		int yuanjia = 5000;
    		System.out.println("请选择您要出行的月份:");
    		int yuefen = cxj.nextInt();
    		System.out.println("请问您需要头等舱还是经济舱?
    "+"头等舱输入1"+"	经济舱输入2");
    		System.out.print("请输入:");
    		int cang = cxj.nextInt();
    
    		if(yuefen>=4&&yuefen<=10) {
    			if(cang==1) {
    				System.out.println("您的机票价格为:"+yuanjia*0.9);
    			}else {
    				System.out.println("您的机票价格为:"+yuanjia*0.6);
    			}	
    		}else if(cang==1){
    				System.out.println("您的机票价格为:"+yuanjia*0.5);
    			}else {
    				System.out.println("您的机票价格为:"+yuanjia*0.4);
    			}
    	}
    }
    

      结果示例:

      B、赌色子游戏,三个色子赌大小

    package com.java12_26;
    
    import java.util.Scanner;
    //3、4、5、6、7、8、9、10、11、12、13、14、15、16、17、18,假设三个筛子的数之和<=10为小,反之为大
    public class ShaiZi_DaXiao {
    	public static void main(String[] args) {
    		Scanner cxj = new Scanner(System.in);
    		int money = 10000;
    		System.out.println("请问您是否要进行开盘?y/n");
    		String kaipan = cxj.next();
    		if(kaipan.equals("y")) {
    			int a = (int)(Math.random()*6+1);
    			int b = (int)(Math.random()*6+1);
    			int c = (int)(Math.random()*6+1);
    			int sum = a+b+c;
    			System.out.println("请您下注:");
    			int xiazhu = cxj.nextInt();
    			System.out.println("您压大压小?");
    			String daxiao = cxj.next();
    			System.out.println("开:"+a+","+b+","+c+";"+sum);
    			if(sum<=10) {
    				if(daxiao.equals("小")) {
    					System.out.println("是小,恭喜您压对了");
    					money +=xiazhu;
    				}else {
    					System.out.println("报歉您压错了");
    					money -=xiazhu;
    				}
    				System.out.println("余额:"+money);
    			}else {
    				if(daxiao.equals("大")) {
    					System.out.println("是大,恭喜您压对了");
    					money +=xiazhu;
    				}else {
    					System.out.println("报歉您压错了");
    					money -=xiazhu;
    				}
    				System.out.println("余额:"+money);
    			}
    		}else {
    			System.out.println("感谢您的光顾,请慢走!");
    		}
    	}
    }

        示例结果为:

      C、switch实现周一、三、五预习;周二、四、六复习;周七休息

    import java.util.Scanner;
    
    //1、3、5预习,2、4、6复习,7复习
    public class XingQi {
    	public static void main(String[] args) {
    		Scanner cxj = new Scanner(System.in);
    		System.out.println("您想查询周几的课程?请输入:");
    		int zhouji= cxj.nextInt();
    		if(zhouji>=1&&zhouji<=7) {
    			switch(zhouji) {
    			case 1:
    			case 3:
    			case 5:
    				System.out.println("请预习明天的课程!");
    				break;
    			case 2:
    			case 4:
    			case 6:
    				System.out.println("请复习功课!");
    				break;
    			default:
    				System.out.println("今天休息,可以放松下心情");
    			}
    		}else {
    			System.out.println("您的输入有误!");
    		}
    	}
    }
    

        示例结果:

     4、异常问题记录

      例:100米比赛成绩在10秒以内的可以分别进入男、女组决赛,编写程序实现。

    public class JueSai {
    	public static void main(String[] args) {
    
    		int score = 8;
    		String sex = null;
    		if(score<10) {
    			if(sex.equals("男")) {
    				System.out.println("恭喜你进入男子组决赛!!");
    			}else {
    				System.out.println("恭喜你进入女子组决赛!!");
    			}
    		}else {
    			System.out.println("报歉,你的成绩无法进入决赛!!");
    		}
    	}
    }
    

      结果会显示空指针异常:

      空指针异常:java.lang.NullPointerException

     

        String sex = null;

        if(sex.equals("男“))这一句出现空指旬异常,因为sex为空

     

        出现原因:使用值为null的变量调用了方法

        解决方案:给该为null的变量赋值;或者使用不为null的变量来调用方法

        总结:在使用方法时,要用不太可能为null的变量来调用方法,可以避免空指针异常

      解决方法1:把equals左右两个操作数对换,用常来调用方法,这样if("男".equals(sex))结果为FALSE

    public class JueSai {
    	public static void main(String[] args) {
    
    		int score = 8;
    		String sex = null;
    		if(score<10) {
    			if("男".equals(sex)) {
    				System.out.println("恭喜你进入男子组决赛!!");
    			}else {
    				System.out.println("恭喜你进入女子组决赛!!");
    			}
    		}else {
    			System.out.println("报歉,你的成绩无法进入决赛!!");
    		}
    	}
    }
    

      结果为:

      解决方法2:直接输入赋值

    import java.util.Scanner;
    
    public class JueSai {
    	public static void main(String[] args) {
    		Scanner cxj = new Scanner(System.in);
    		System.out.println("请输入学生的跑步成绩:");
    		int score = cxj.nextInt();
    		System.out.println("请输入学生的性别:");
    		String sex = cxj.next();
    		if(score<10) {
    			if(sex.equals("男")) {
    				System.out.println("恭喜你进入男子组决赛!!");
    			}else {
    				System.out.println("恭喜你进入女子组决赛!!");
    			}
    		}else {
    			System.out.println("报歉,你的成绩无法进入决赛!!");
    		}
    	}
    }
    

      结果示例:

    预习重点:

      1、循环的语法

         A、while循环语句语法

          变量初始化

          while(循环条件){

            循环体;

            修改循环变量;

          }

        B、do-while循环语句语法

          变量初始化

          do{

            循环体;

            修改循环变量;

          }(循环条件);

        C、for循环语句语法

          for(变量初始化;循环条件;修改循环变量){

            循环体;

          }

      2、各自的特点

         A、while循环:先判断循环条件,再执行循环体。如果条件不成立,退出循环。

        B、do-while循环:先执行循环体,再判断循环条件,循环体至少执行一次

        C、for循环:先执行变量初始化部份,再判断循环条件,然后再执行循环体,最后进行循环变量的计算。如果条件不成立,跳出循环。在循环次数确定的情况下,优先选用for循环。

      3、循环结构的几个要素

        变量初始化、循环体、循环条件、修改循环变量

  • 相关阅读:
    Android之基于XMPP即时通讯(转)
    开机启动service小DEMO
    Android 歌词同步滚动效果(转)
    OC中的消息传递和初始化
    oc中对象的初始化
    c语言的结构体字节数统计
    css的页面布局
    说一说我理解的css
    什么是js闭包
    我对js作用域的理解
  • 原文地址:https://www.cnblogs.com/chenxj/p/10181566.html
Copyright © 2011-2022 走看看