Java基础练习之流程控制(二)

8、彩票游戏

假设你想开发一个玩彩票的游戏,程序随机地产生一个两位数的彩票,提示用户输入一个两位数,然后按照下面的规则判定用户是否能赢。

1)如果用户输入的数匹配彩票的实际顺序,奖金10 000美元。
2)如果用户输入的所有数字匹配彩票的所有数字,但顺序不一致,奖金 3 000美元。
3)如果用户输入的一个数字仅满足顺序情况下匹配彩票的一个数字,奖金1 000美元。
4)如果用户输入的一个数字仅满足非顺序情况下匹配彩票的一个数字,奖金500美元。
5)如果用户输入的数字没有匹配任何一个数字,则彩票作废。

 

提示:

  • 使用Math.random() 产生随机数
  • Math.random() 产生[0,1)范围的随机值
  • Math.random() * 90:[0,90)
  • Math.random() * 90 + 10:[10,100) 即得到 [10,99]
  • 使用(int)(Math.random() * 90 + 10)产生一个两位数的随机数。
 1 import java.util.Scanner;
 2 
 3 public class TestCaiPiao{
 4     public static void main(String[] args){
 5         //1、随机产生一个两位数
 6         //System.out.println(Math.random());//产生[0,1)
 7         int number = (int)(Math.random()*90 + 10);//得到[10,99],即[10,100)
 8         //System.out.println(number);
 9         
10         int numberShi = number/10;
11         int numberGe = number%10;
12         
13         //2、用户输入一个两位数
14         Scanner input = new Scanner(System.in);
15         System.out.print("请输入一个两位数:");
16         int guess = input.nextInt();
17         
18         int guessShi = guess/10;
19         int guessGe = guess%10;
20         
21         if(number == guess){
22             System.out.println("奖金10 000美元");
23         }else if(numberShi == guessGe && numberGe == guessShi){
24             System.out.println("奖金3 000美元");
25         }else if(numberShi==guessShi || numberGe == guessGe){
26             System.out.println("奖金1 000美元");
27         }else if(numberShi==guessGe || numberGe == guessShi){
28             System.out.println("奖金500美元");
29         }else{
30             System.out.println("没中奖");
31         }
32         
33         System.out.println("中奖号码是:" + number);
34     }
35 }

 

在这里插入图片描述

9、赌数游戏

提供三个1-6的随机数,作为掷骰子得到的点数。如果各个点数相同,则为豹子。
如果三个骰子点数和,小于或等于9,则为“小”。
如果三个骰子点数和,大于9,则为“大”。
用户随机选择:押大、押小或者押豹子。通过判断,输出客户是否押正确。

import java.util.Scanner;

public class GuessNumber{
    public static void main(String[] args){
        //1、产生一个[1-6]的数
        int a = (int)(Math.random()*6+1);
        //System.out.println(a);
        int b = (int)(Math.random()*6+1);
        //System.out.println(b);
        int c = (int)(Math.random()*6+1);
        //System.out.println(c);
        
    
        
        String result = "";
        if(a==b && b==c){
            result = "豹子";
        }else if(a+b+c <=9 ){
            result = "小";
        }else{
            result = "大";
}
        
        //2、用户输入猜的结果
        Scanner input = new Scanner(System.in);
        System.out.print("请押宝,买定离手:(选择:大、小、豹子)");
        String guess = input.next();
        
        //3、判断结果
        if(result.equals(guess)){
            System.out.println("猜对了");
        }else{
            System.out.println("猜错了");
        }
    }
}

 

在这里插入图片描述

10、生肖问题

编写一个程序,为一个给定的年份找出其对应的中国生肖。

中国的生肖基于12年一个周期,每年用一个动物代表:

rat(鼠)、ox(牛)、tiger(虎)、rabbit(兔)、dragon(龙)、snake(蛇)、 horse(马)、sheep(羊)、monkey(候)、rooster(鸡)、dog(狗)、pig(猪)。

提示:2019年:猪 2019 % 12 == 3

import java.util.Scanner;

public class ShengXiaoTest{
    public static void main(String[] args){
        Scanner input = new Scanner(System.in);
        System.out.print("请输入年份:");
        int year = input.nextInt();
        
        switch(year%12){
            case 0:
                System.out.println("猴年");
                break;
            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;
            case 8:
                System.out.println("龙年");
                break;
            case 9:
                System.out.println("蛇年");
                break;
            case 10:
                System.out.println("马年");
                break;
            case 11:
                System.out.println("羊年");
                break;
            
        }
    }
}

 

在这里插入图片描述

11、下面程序片段的输出结果是?

public static void main(String[] args) {
        int a = 3;
        int b = 1;
        if(a = b){
            System.out.println("Equal");
        }else{
            System.out.println("Not Equal");
        }
    }

答案:编译不通过
在这里插入图片描述

12、What is the result when you compile and run the following code?

public class Test{
    public void method(){
        for(int i = 0; i < 3; i++) {
           System.out.print(i);
        }
        System.out.print(i);
}
}

 

A. 0122
B. 0123
C. compile error
D. none of these

答案:C
在这里插入图片描述

13、执行如下代码后,c的值是多少?

public static void main(String[] args) {
        int a = 0;
        int c = 0;
        do {
            --c;
            a = a - 1;
        } while (a >= 0);
        System.out.println("c = " + c);
    }

 

在这里插入图片描述

14、以下代码的运行结果?

public static void main(String[] args) {
        int i=10;
        while(i>0){
            i = i +1;
            if(i==10){
                break;
            }
        }
        System.out.println("i=" + i);
    }

 

答案一:是一个负数,因为i一直累加会超过int的存储范围

答案二:死循环
在这里插入图片描述

15、修正如下代码

下面是一段程序,目的是输出10个=,但是不小心代码写错了,现在需要修改代码,使得程序完成功能,但是只能“增加”或“修改”其中“一个”字符,很明显,将i–改为i++,可以完成功能,但是需要修改“两个”字符,所以并不是一个正确的答案。

public static void main(String[] args) {
        int n=10;
        for (int i = 0; i < n; i--) {
            System.out.println("=");
        }
    }

 

答案:i<n修改为-i<n

修改前是死循环,修改后:
在这里插入图片描述

16、打印九九乘法表

1 public static void main(String[] args) {
2         for(int i =1;i<=9;i++){
3             for(int j=1;j<=i;j++){
4                 System.out.print(j+"*"+i+"="+(i*j) + "\t");
5             }
6             System.out.println();
7         }
8     }

 

在这里插入图片描述

在这里插入图片描述

posted @ 2021-03-04 22:58  BugMiaowu2021  阅读(190)  评论(0编辑  收藏  举报