猜数字小游戏,switch,while(true),Random,Scanner用法

package com.web;

import java.util.Random;
import java.util.Scanner;

public class Test32 {
    
    
    public static void main(String[] args) {
    
    
        inputMethod();
        System.out.println("================================");
        guessMethod();
        System.out.println("================================");
        inputMethod2();//不写break时case的穿透现象
    }

    private static void inputMethod2() {
    
    
        //故意不写break,输出如下
        //case5
        //case10
        //default
        int i = 5;
        switch (i) {
    
    
            case 0:
                System.out.println("case0");
                break;
            case 5:
                System.out.println("case5");
            case 10:
                System.out.println("case10");
            default:
                System.out.println("default");
        }
    }

    private static void guessMethod() {
    
    
        // 系统产生一个随机数1-100之间的。
        //public int nextInt(int n):返回一个伪随机数,范围在0(包括)和指定值n(不包括)之间的int值。
        Random r = new Random();
        int randomNumber = r.nextInt(100) + 1;//写到while里会每次猜数字前都会生成不同的数字,最开始随机数要定下来
        System.out.println("randomNumber = " + randomNumber);
        try {
    
    
            while (true) {
    
    
                Scanner scanner = new Scanner(System.in);
                System.out.print("Input number form 1 to 100:");
                int guessNumber = scanner.nextInt();
                if (guessNumber > randomNumber) {
    
    
                    System.out.println("too Big");
                } else if (guessNumber < randomNumber) {
    
    
                    System.out.println("too small");
                } else if (guessNumber == randomNumber) {
    
    
                    System.out.println("bingo");
                    break;//没有break会无限猜下去
                } else {
    
    
                    System.out.println("Input number please");
                }
            }
        } catch (Exception e) {
    
    
            System.out.println("Input a number ,not a String");
            e.printStackTrace();
        }
    }

    private static String inputMethod() {
    
    
        //终端while(true)的方法,但switch似乎不能这么用
        //while(true) {
    
    
        //    语句;
        //      if(条件式)
        //          break;  // 跳离循环
        //       ...
        //}
        while (true) {
    
    
            Scanner scanner = new Scanner(System.in);
            System.out.print("input str :");
            String str = scanner.next();
            switch (str) {
    
    
                case "1":
                    System.out.println("return str is " + str);//用return代替break,方法要有返回值,一个方法里可以有多个return。
                    return str;
                case "2":
                    System.out.println("return str is " + str);//这里用return是为了中断函数执行,否则会无限输入下去
                    return str;
                case "3":
                    System.out.println("case is 3");
                    break;
                case "4":
                    System.out.println("case is 4");
                    break;
                default:
                    System.out.println("is exception");
                    break;
            }
            System.out.println("try again");
        }
    }
}

おすすめ

転載: blog.csdn.net/djydjy3333/article/details/121489769