zoukankan      html  css  js  c++  java
  • Java 选择与循环结构详细教程

    一、选择结构(6种)

    1、单分支if语句

    if(condition){

      statements;

    }

    如果布尔表达式condition的值为真,则执行statements语句,否则转到if结构后的语句执行。

    例1

    package com.baidu.czy;
    
    import java.util.Scanner;
    
    public class CheckNumber {
        public static void main(String[] args) {
            Scanner sc = new Scanner(System.in);
            System.out.println("请输入一个整数:");
            int num = sc.nextInt();
            if (num % 5 == 0 && num % 6 == 0){
                System.out.println(num + "能被5和6同时整除");
            }
            if (num % 5 == 0 || num % 6 == 0){
                System.out.println(num + "能被5或6整除");
            }
            if (num % 2 == 0 ^ num % 6 == 0){
                System.out.println(num + "只能被5或6整除");
            }
    
        }
    }

    2、双分支if-else语句

    例2

    import java.util.Scanner;
    public class AdditionQuiz {
        public static void main(String[] args) {
            int number1 = (int)(Math.random()*10);         // [0.0-1.0)
            int number2 = (int)(Math.random()*10);
            System.err.print(number1 + "+" + number2 +"=");
            Scanner input = new Scanner(System.in);
            int answer = input.nextInt();
            if(answer ==(number1+number2)){
                System.out.println("恭喜你,答对了!");
            }else{
                System.out.println("很遗憾,答错了!");
                System.out.println(number1 +"+"+number2 +"="+(number1+number2));
            }
        }
    
    }

    3、嵌套的if语句和多分支的if-else语句

    例3

    package com.baidu.czy;
    
    import java.util.Scanner;
    /*
    1、成员变量:无需初始化。
    成员变量无需初始化,系统在创建实例的过程中默认初始化。
    
    补充:以final修饰的成员变量。必须显性的初始化赋值。
    
    2、 方法里面的形参变量: 无需初始化。
    Java类方法,属于按值传递机制,调用方法的时候,完成参数的传递,相当形参被初始化。
    
    3、局部变量:必须初始化。
    与成员变量不同,局部变量必须显示初始化,才能够使用。
     */
    
    public class ScoreLevel {
        public static void main(String[] args) {
    
            String level = null;
            Scanner sc = new Scanner(System.in);
            System.out.print("请输入成绩:");
            double score = sc.nextDouble();
            if (score > 100 || score < 0){
                System.out.println("输入成绩不正确。");
            }else if (score >= 90){
                level = "优秀";
            }else if (score >= 80){
                level = "良好";
            }else if (score >= 70){
                level = "中等";
            }else if (score >= 60){
                level = " 及格";
            }else {
                level = "不及格";
            }
            System.out.println("你的成绩等级为:" + level);
        }
    }

    4、条件运算符

    条件运算符是Java唯一的三元运算符

    condition ?  expression1 : expression2

    如果condition为真,则执行expression1,否则执行expression2

    5、switch语句结构

    switch(expression){

      case value1:

        statements     [break];

        case value2:

        statements     [break];

      . . . . .  . . . .. 

      [default:

       statements ]

    }

    注意:

    (1)expression是一个表达式,它的值必须是byte、short、int、char、String、enum,同时expression类型必须与value的类型相匹配。

    (2)break语句是可选项,计算expression的值与case的值进行匹配,若匹配,则执行case子句后面的语句,直到遇到break语句为止;

      若都不匹配,则执行default语句块;若既都不匹配又没有default语句,则直接跳出switch结构。

    例4

    package com.baidu.czy;
    
    import java.util.Scanner;
    
    public class SwitchDemo {
        public static void main(String[] args) {
            Scanner sc = new Scanner(System.in);
            System.out.println("请输入年份:");
            int  year = sc.nextInt();
            System.out.println("请输入月份:");
            int month = sc.nextInt();
            int numDays = 0;
            switch (month){
                case 1: case 3: case 5:
                case 7: case 8: case 10:
                case 12:
                numDays = 31;
                break;
                case 4: case 6: case 9:case 11:
                numDays = 30;
                break;
                case 2:
                    if (((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0)){
                        numDays = 29;
                    }else {
                        numDays = 28;
                    }
                    break;
                default:
                        System.out.println("月份非法");
                        break;
            }
            System.out.println("该月的天数为:"+numDays);
    
        }
    }

    二、循环结构(4种)

    1、while循环(“当循环”)

    一般用在循环次数不确定的情况下

    package com.baidu.czy;
    
    import java.util.Scanner;
    
    public class GuessNumber {
        public static void main(String[] args) {
            //随机产生100~200的数
            int magic = (int)(100 + Math.random() * 101);
            Scanner sc = new Scanner(System.in);
            System.out.println("请输入你猜的数:");
            int guess = sc.nextInt();
            while (guess != magic){
                if(guess > magic){
                    System.out.println("您猜大了");
                }else {
                    System.out.println("您猜小了");
                }
                //进入到下一次
                guess = sc.nextInt();
            }
            System.out.println("恭喜你,答对了!
    该数是:"+magic);
        }
    }

    2、do-while循环(“直到型”循环)

    与while循环的区别是,do-while至少执行一次循环体。

    import java.util.Scanner;
    public class DoWhileDemo {
        public static void main(String[] args) {
           double sum = 0,avg = 0;
           int n = 0;
           double number;
           Scanner input = new Scanner(System.in);
           do{
               System.out.print("请输入一个数(输0结束):");
               number = input.nextDouble();
               if(number != 0){
                  sum = sum + number;
                  n = n + 1;
               }
           }while(number!=0);
           avg = sum / n;
           System.out.println("sum = "+ sum);
           System.out.println("avg = "+ avg);
        }
    }

    3、for循环

    一般用在循环次数固定的情况下

    例    打印九九乘法表

    public class NineTable {
    
        public static void main(String[] args) {
            for(int i = 1; i < 10; i++){
                for(int j = 1; j <=i; j++){
                    System.out.print(i +"*"+j + "="+i*j + "  ");
                }
                System.out.println();
            }
        }
    }

     注意:for循环的一部分或全部可为空,但是分号不能省略。

    如   for( ;  ;  ){

    }

    4、增强的for循环

    主要用于对数组和集合元素的迭代

    一般格式

    for(type  identifier: expression){

      //循环体

    }

    该循环的含义:对expression(数组或集合)中的每个元素identifier,执行一次循环体中的语句。

           type指数组或集合中的元素类型;expression必须是一个数组或集合的对象。

    例如:用增强的 for循环实现求数组marks中各元素的和

    double sum = 0;

    for(double score:marks){

      sum = sum + score;

    }

    使用增强型for循环的局限性:只能顺序访问数组或集合的元素。

  • 相关阅读:
    前缀和与差分
    可行!解决bitmap缩放失真问题
    Android 中的 File renameTo() 使用
    XMPP 中客户端断线及网络异常处理
    webview 离线缓存,html5游戏适用
    Mac os x下配置 Android ndk 开发环境
    从外企到国企的工作环境改变
    微软SQL Server数据库SQL语句导入导出大全,包括与其他数据库和文件的数据的导入导出
    人生第一职业:我当了人民教师
    JOIN 分为内连接,外连接(左外连接,右外连接,全外连接)
  • 原文地址:https://www.cnblogs.com/my-program-life/p/11002965.html
Copyright © 2011-2022 走看看