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)产生一个两位数的随机数。
import java.util.Scanner;

public class TestCaiPiao{
	public static void main(String[] args){
		//1、随机产生一个两位数
		//System.out.println(Math.random());//产生[0,1)
		int number = (int)(Math.random()*90 + 10);//得到[10,99],即[10,100)
		//System.out.println(number);
		
		int numberShi = number/10;
		int numberGe = number%10;
		
		//2、用户输入一个两位数
		Scanner input = new Scanner(System.in);
		System.out.print("请输入一个两位数:");
		int guess = input.nextInt();
		
		int guessShi = guess/10;
		int guessGe = guess%10;
		
		if(number == guess){
			System.out.println("奖金10 000美元");
		}else if(numberShi == guessGe && numberGe == guessShi){
			System.out.println("奖金3 000美元");
		}else if(numberShi==guessShi || numberGe == guessGe){
			System.out.println("奖金1 000美元");
		}else if(numberShi==guessGe || numberGe == guessShi){
			System.out.println("奖金500美元");
		}else{
			System.out.println("没中奖");
		}
		
		System.out.println("中奖号码是:" + number);
	}
}

在这里插入图片描述

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、打印九九乘法表

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

在这里插入图片描述

在这里插入图片描述

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

BugMiaowu2021

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值