Java流程控制之选择结构

时间:2019-09-15
本文章向大家介绍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语句可以结束当前循环的执行,但是要继续下一次循环的执行

    

原文地址:https://www.cnblogs.com/mpp0905/p/11521696.html