• 0416/0417分支和循环结构


    0416/0417分支和循环结构

    基本程序结构可分为 顺序结构 分支结构 循环结构

    1.分支结构

    【建议】写分支循环结构时可先写好程序框架

    1.1if语句
    三种循环结构
    if(布尔结论){...}
    if(布尔结论){...}else{...}
    if(布尔结论){...}else if{...}[else{...}]
    
    
    //小技巧TIP,了解即可
    【注意】如果 if(或 else if,或 else) 条件成立时的执行语句只有一条,是可以省略大括号的!但如果执行语句有多条,那么大括号就是不可或缺的。
    int days = 31;
    if(days > 30)
        System.out.println("本月是大月");
    else
        System.out.println("本月是小月");
    
    
    1.2switch语句
    switch(int char 枚举类型 String){
        case:1
            //语句体
            break;
        case:2
            //语句体
            break;
        default:
            //语句体
    }
    
    【注意点】
        switch 只能根据以上类型具体数值进行判断,if 能对布尔表达式进行判断再选择,if可操作范围型的数据
        break 关键字用于结束switch语句段    
            
        switch 后的条件会与case后的判断的内容会区分大小写 
     
        JDK1.5 支持枚举类型
        JDK1.7 支持String类型
    
        switch 语句支持向下穿透,本case无break语句会继续向下执行,直到遇到break或者(switch case)的大括号}
        default 可以省略,代码编译没有语法错误,但失去了一个异常情况处理方式》》AJCG阿里巴巴Java开发规范中,是不推荐省略default
            
        在switch - case结构中,不允许出现相同的case选项,代码无法进行操作选择,因为所有case选择是平级的
    
    1.3分支结构总结
    分支结构用于处理代码中出现的一些需要判断,并且按按条件处理的情况!!!
    	1. 条件约束考虑清楚
    	2. 处理的过程考虑清楚
    	3. 数据类型选择
    

    2.循环结构

    2.1while/for循环结构
    while语句适用于知道判断条件结果的
    for语句适用于知道循环次数的
    
    三种循环语句都是:条件满足一直循环,循环到条件不满足时停止
    
    代码中一定存在需要循环出现的情况,如果不使用循环,会导致以下一些问题
    	1. 阅读性极差!!!
    	2. 维护性极差!!!
    	3. 代码冗余!!!
    
    
    
    2.2while循环
    while (/* 循环条件 true or false */) {
        // 循环体
        // (循环条件变更)
    }
    /*
    执行流程:
    	当前程序运行到while循环结构时,首先判断while之后的小括号里面的循环条件是否为true,如果为true,执行循环体,在回到循环条件判断,直到循环条件为false,终止循环!!!
    */
    
    2.3do-while循环
    do {
        // 循环体
        // (循环条件变更)
    } while (/* 循环条件判断 */);
    /*
    执行流程:
    	当程序执行到do - while循环结构时,首先执行一次循环体(循环条件变更),再来判断while中循环条件判断是否为true,如果为true,继续执行,如果为false,终止循环。
    【注意】
    	1. while(condition);;;;;;;;;;;;;;;;;;;;;;;;;;; 这里英文分号
    	2. 执行do - while需要明确第一次循环会不会存在隐患
    【注意】
    	do {
    		ch += 1;//正确操作,建议操作
    		//ch ++;//正确操作
    		//ch = ch +1; //错误操作 char为字符类型,无法保存int类型!!!
    	} while (ch <= 'Z');
    */
    
    2.4循环总结
    1. 循环过程中最核心的内容就是循环变量,需要对于循环变量的执行的过程中数值变量完全掌握!!!如果无法明确循环的次数,循环变量的值,循环的过程,可以将循环代码中变量的变更过程记录。
    
    2. 循环过程中需要注意无限循环问题,控制无限循环问题的出现。一定要保证循环条件有效性或者代码中存在一个跳出循环的机制。
    
    3. do while循环中,第一次循环体的执行是没有经过任何的条件判断的,需要注意!
    【已知,可控】程序最好达到
    
    4. while和do while循环结构是可以进行互换的。
    
    5. 然后在while和do while之间考虑使用的情况下,一般推荐使用while循环。但是不代表do while没有实际的使用效果。
    
    2.5循环控制语句
    continue 跳出本次循环继续下一次循环
    break    终止此循环
    
    
    2.6案例
    /*案例1
        *
       * *
      * * *
     * * * *
    * * * * *
    */
    class Stars{
    	public static void main(String[] args){
    		int n = 5;
    		for ( int i = 1;i<= n;i++){
    			for (int j = 1;j<= n - i;j++){
    				System.out.print(" ");
    			}
    			
    			for (int k = 1;k <=i;k++){
    				System.out.print("* ");
    			}
    			System.out.println("");
    		}
    	}
    }
    
    /*案例2
    乘法口诀表
    */
    class Cheng{
    	public static void main(String[] args) {
    		for( int i = 1;i<=9;i++){
    			for(int j = 1;j<=i;j++){
    				System.out.print(i + "*" + j + "=" + (i*j) + "	");
    			}
    			System.out.println();
    		}
    	}
    }
    

    3.补充知识点

    3.1Scanner
    	Scanner是Java中提供的用于从控制台输入数据到代码中的一种方式,存在一些弊端,容易导致一些错误,这里只要求大家了解一些必要的方法。
    	【Scanner操作哪里需要沾哪里】
    	
    Scanner使用流程
    	1. 点技能点,Java程序本身是没有直接使用Scanner的能力,这里需要点技能点。
    	官网操作【导包】
    	固定格式:
    		import java.util.Scanner;
    		放在class代码上一行
    	
    	2. 需要得到一个Scanner的变量
    	固定格式:
    		Scanner sc = new Scanner(System.in);
    	
    	3. 选择执行对应的方法,从键盘上获取对应的数据
    		获取int类型 
    			int类型的变量 = sc.nextInt();
    		获取float类型 
    			float类型的变量 = sc.nextFloat();	
    		获取double类型
            	double类型的变量 = sc.nextDouble();
    		获取char类型 
    			char类型的变量 = sc.nextLine().charAt(0);
    
    3.2用户友好性提示
    	代码运行需要站着用户的角度来思考问题。用户进行操作时,需要给予用户足够的提示和引导,告知用户当前操作如何完成,考虑代码的友好性!!!
    	用户粘性问题!!!用户提示!!!用户友好性!!!
    
    3.3 用户输入数据合法性判断
    就算在提示中告知用户需要输入的数据范围是多少,但是用户在实际使用的过程中,依然存在输入错误的情况。需要对于用户输入的数据进行合法性判断,如果用户输入的内容符合我们的判断逻辑需求,进入数据处理过程。如果不符合要求,直接终止程序!!!
    
    3.4综合案例
    /*
    学生成绩的等级划分:
    	90 ~ 100 秀儿
    	80 ~ 90 良儿
    	70 ~ 80 中儿
    	60 ~ 70 格儿
    	60 以下 让你爹穿着拖鞋来学校一趟
    */
    
    // 导包,让当前Java代码可以使用Scanner
    import java.util.Scanner;
    
    class Demo10 {
    	public static void main(String[] args) {
    		/*
    		成绩考虑存在0.5的情况,需要使用浮点类型数据
    		这里采用float类型,这里赋值一个初值
    		*/
    		float score = 0.0F;
    	
    		// 需要得到一个Scanner的变量
    		Scanner sc = new Scanner(System.in);
    		
    		/* 提示用户操作 */
    		System.out.println("请输入学生的成绩1 ~ 100:");
    		score = sc.nextFloat();
    		
    		/* 
    		验证用户输入数据的合法性 
    		如果用户输入的数据不合法,终止程序!!!
    		不合法: 输入数据 > 100 或者 < 0
    		*/
    		if (score > 100 || score < 0) {
    			System.out.println("输入数据不合法!!!");
    			// 程序退出
    			System.exit(0);
    		}
    		
    		/* 成绩等级判断 */
    		if (score >= 90 && score <= 100) {
    			System.out.println("秀儿");
    		} else if (score >= 80) {
    			System.out.println("良儿");
    		} else if (score >= 70) {
    			System.out.println("中儿");
    		} else if (score >= 60) {
    			System.out.println("格儿");
    		} else {
    			System.out.println("让你爹穿着拖鞋来学校一趟");
    		} 
    	}
    }
    
    System.exit(0); 程序退出语句
    
  • 相关阅读:
    sublime 复制黏贴等快捷键修改
    python自定义函数在Python解释器中调用
    MQTT之 Mosquitto hello world的使用
    Java传入参数个数不确定可用(Type ... values)
    mac 下周期调度命令或脚本
    git 小乌龟安装教程
    Git学习笔记(二)
    关于github报错connect to host github.com port 22: Connection timed out的解决
    Git学习笔记(一)
    爬虫过程中需要注意的问题
  • 原文地址:https://www.cnblogs.com/raising/p/12716618.html
Copyright © 2020-2023  润新知