zoukankan      html  css  js  c++  java
  • Java流程控制之选择结构

    三大流程控制语句:

        顺序:

      从上往下依次执行

        选择:

      根据条件执行对应的内容

          if结构;if else结构;多重if;嵌套if;switch结构

        循环:

      循环执行,反复执行

          while;  do while;  for

          循环嵌套

      break语句

      continue语句

    ==================分割线=======================

    1. 多重if结构

    package com.vipkid.flow;
    
    import java.util.Scanner;
    
    public class ScoreAssess {
        public static void main(String[] args) {
            /*
            成绩大于等于90,输出优
            成绩大于等于80且小于90,输出良
            成绩大于等于60且小于80,输出中
            成绩小于60,输出不及格
             */
    
            System.out.println("请输入成绩:");
            Scanner sc = new Scanner(System.in);
            int score = sc.nextInt();
    
            if(score >= 90){
                System.out.println("优");
            }
            else if(score>=80){
                System.out.println("良");
            }
            else if(score>=60){
                System.out.println("中");
            }
            else{
                System.out.println("不及格");
            }
        }
    }

    2. 嵌套if结构

    package com.vipkid.flow;
    
    public class IntCompare {
        public static void main(String[] args) {
            //比较两个整数的大小,并输出
            int x=10,y=90;
            if(x==y){
                System.out.println("x等于y");
            }else{
                if(x>y){
                    System.out.println("x>y");
                }else{
                    System.out.println("x<y");
                }
            }
        }
    }

     3. switch

    if结构:判断条件是布尔类型,判断条件是一个范围

    switch结构:判断条件是常量值

    (1)switch的表达式为int类型

    package com.vip.flow;
    
    import java.util.Scanner;
    
    public class WeekDemo1 {
        public static void main(String[] args) {
            Scanner sc = new Scanner(System.in);
            System.out.println("请输入1-7之间的数字:");
            int n = sc.nextInt();
            switch (n){
                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的范围");
            }
        }
    }

    (2)switch表达式为String类型

    package com.vip.flow;
    
    import java.util.Scanner;
    
    public class WeekDemo2 {
        public static void main(String[] args) {
            Scanner sc = new Scanner(System.in);
            System.out.println("请输入表示星期的英文单词:");
            String week = sc.next();
            week = week.toUpperCase();  //把输入的week变成大写
            switch (week) {
                case "MONDAY":
                    System.out.println("星期一");
                    break;
                case "TUESDAY":
                    System.out.println("星期二");
                    break;
                case "WEDNESDAY":
                    System.out.println("星期三");
                    break;
                case "THURSDAY":
                    System.out.println("星期四");
                    break;
                case "FRIDAY":
                    System.out.println("星期五");
                    break;
                case "SATURDAY":
                    System.out.println("星期六");
                    break;
                case "SUNDAY":
                    System.out.println("星期日");
                    break;
                default:
                    System.out.println("单词输入错误");
            }
        }
    }

    4. while循环

    package com.vip.flow;
    
    public class PlusDemo {
        public static void main(String[] args) {
            //求1-5的累加和  1+2+3+4+5
            int n = 1;
            int sum = 0;
            while(n<=5){
                sum = sum + n;
                n++;
            }
            System.out.println("1——5的累加和为:"+sum);
        }
    }

    代码分析如下图:

    又一个例题:

    package com.vip.flow;
    
    public class CharDemo {
        public static void main(String[] args) {
            //循环输出26个小写英文字母,分两行
            char ch = 'a';
            int count = 1;  //控制换行
            while(ch <='z'){
                System.out.print(ch+" ");
                if(count%13==0){
                    System.out.println();
                }
                count++;
                ch++;
            }
    
        }
    }

    5.do while循环

      do while循环至少执行一次;

      循环条件后的分号不能丢;

    使用do while实现1——5的累加和例题

    package com.vip.flow;
    
    public class DoWhileDemo {
        public static void main(String[] args) {
            //求1到5的累加和
            int n =1;
            int sum = 0;
            do{
                sum = sum + n;
                n++;
            }
            while (n<=5);
            System.out.println("1到5的累加和为:"+sum);
        }
    }

    猜数游戏:要求猜一个介于1到10之间的数字,然后将猜测的值与实际值进行比较,并给出提示,以便能更接近实际值,直到猜中为止。

    package com.vip.flow;
    
    import java.util.Scanner;
    
    public class GuessInt {
        public static void main(String[] args) {
            //设置一个要猜的随机数
            int number = (int)(Math.random()*10+1);  //Math.random()得到的是[0,1)之间的double数  *10+1后未[1,11)之间的数,大于等于1,小于11
            System.out.println("随机数number="+number);
            int guess;
            System.out.println("猜一个1-10之间的整数");
            do{
                System.out.println("请输入您猜测的数:");
                Scanner sc = new Scanner(System.in);
                guess = sc.nextInt();
                if(guess>number){
                    System.out.println("猜测太大");
                }
                else if(guess<number){
                    System.out.println("猜测太小");
                }
            }
            while (guess != number);
            System.out.println("恭喜你猜对了,答案为:"+number);
        }
    }

    6.for循环

    使用for循环求1-5的累加和

    package com.vip.flow;
    
    public class ForDemo {
        public static void main(String[] args) {
            int sum=0;
            for(int n=1;n<=5;n++){
                sum = sum + n ;
            }
            System.out.println("1-5的累加和为:"+sum);
        }
    }

    循环输入数字1-10并输出,如果输入0则跳出(break??)循环

    package com.vip.flow;
    
    import java.util.Scanner;
    
    public class NumInput {
        public static void main(String[] args) {
            Scanner sc = new Scanner(System.in);
            int n;
            while(true){
                n = sc.nextInt();
                if(n==0){break;}
                System.out.println("n="+n);
            }
        }
    }

    7.嵌套循环

    使用嵌套的while循环,输入10行10列星号

    package com.vip.flow;
    
    public class StarDemo1 {
        public static void main(String[] args) {
            int m = 1;   //外重循环变量
    //        int n = 1;  //内重循环变量
            System.out.println("输出10行10列星号");
            //外循环控制输出几行
            while(m<=10){
                //内循环控制每行输入几个星号
                int n = 1;   //内重循环变量
                while (n<=10){
                    System.out.print("*"+" ");
                    n++;
                }
                System.out.println();
                m++;
            }
        }
    }

    求1!+2!+3!+……+10!   求阶乘累加之和

    package com.vip.flow;
    
    public class Jiecheng {
        public static void main(String[] args) {
            int sum=0;
            for(int i=1;i<=10;i++){
                int s = 1;
                for(int j=1;j<=i;j++){
                    s = s*j;  //s存放阶乘计算的结果
                }
                sum = sum + s;
            }
            System.out.println("1!+2!+3!+……+10!阶乘之和为:"+sum);
        }
    }

    8.break语句

      break语句可以跳出当前循环结构;

      执行完break语句后,循环体中位于break语句后面的语句就不会被执行;

      多重循环中,break只向外跳一层。

    9.continue语句

      continue只能用在循环里;

      continue语句可以结束当前循环的执行,但是要继续下一次循环的执行

        

  • 相关阅读:
    常用JVM配置参数
    JVM运行机制
    go 奇技淫巧
    如何实现LRU(最近最少使用)缓存淘汰算法?
    数组下标为什么是0而不是1?
    ServiceMesh 演化进程
    CAP定理详解
    vscode 调试配置信息
    Ubuntu 断网问题解决
    ubuntu 关闭指定占用端口
  • 原文地址:https://www.cnblogs.com/mpp0905/p/11521696.html
Copyright © 2011-2022 走看看