• 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语句可以结束当前循环的执行,但是要继续下一次循环的执行

        

  • 相关阅读:
    POJ 1681 Painter's Problem(高斯消元法)
    HDU 3530 Subsequence(单调队列)
    HDU 4302 Holedox Eating(优先队列或者线段树)
    POJ 2947 Widget Factory(高斯消元法,解模线性方程组)
    HDU 3635 Dragon Balls(并查集)
    HDU 4301 Divide Chocolate(找规律,DP)
    POJ 1753 Flip Game(高斯消元)
    POJ 3185 The Water Bowls(高斯消元)
    克琳:http://liyu.eu5.org
    WinDbg使用
  • 原文地址:https://www.cnblogs.com/mpp0905/p/11521696.html
Copyright © 2020-2023  润新知