【java】java语法流程控制

从键盘获取值需要使用Scanner类

1.首先导包:import java.util.Scanner;
2.Scanner实例化:Scanner scan = new Scanner(System.in);
3.调用Scanner类的相关方法获取不同数据类型的值

import java.util.Scanner;
public class ScannerText {
    public static void main(String[] args){
        Scanner scan = new Scanner(System.in);
        int num = scan.nextInt(); //接收整型
        String str = scan.next(); //接收字符串
        double db = scan.nextDouble(); //接收浮点型
        boolean bl = scan.nextBoolean(); //接收布尔型
    }
}

if-else结构练习

1.键盘输入三个整数并将其排序,按从小到大的顺序输出

import java.util.Scanner;
public class IfText {
    public static void main(String[] args){
        Scanner scan = new Scanner(System.in);
        System.out.println("请输入三个整数:");
        int num1 = scan.nextInt();
        int num2 = scan.nextInt();
        int num3 = scan.nextInt();

        if (num1 >= num2) {
            if (num3 >= num1)
                System.out.println("从小到大的顺序为:" + num2 + "," + num1 + "," + num3);
            else if (num3 >= num2)
                System.out.println("从小到大的顺序为:" + num2 + "," + num3 + "," + num1);
            else
                System.out.println("从小到大的顺序为:" + num3 + "," + num2 + "," + num1);
        }
        else{
            if (num3 >= num2)
                System.out.println("从小到大的顺序为:" + num1 + "," + num2 + "," + num3);
            else if (num1 >= num3)
                System.out.println("从小到大的顺序为:" + num3 + "," + num1 + "," + num2);
            else
                System.out.println("从小到大的顺序为:" + num1 + "," + num3 + "," + num2);
        }
    }
}

2.我家的狗5岁了,5岁的狗相当于人类多大呢?其实,狗的前两年每 一年相当于人类的10.5岁,之后每增加一年就增加四岁。那么5岁的狗 相当于人类多少年龄呢?应该是:10.5 + 10.5 + 4 + 4 + 4 = 33岁。
编写一个程序,获取用户输入的狗的年龄,通过程序显示其相当于人 类的年龄。如果用户输入负数,请显示一个提示信息。

import java.util.Scanner;
public class IfText2 {
    public static void main(String[] args){
        Scanner scan = new Scanner(System.in);
        System.out.println("请输入狗狗年龄:");
        int dogAge = scan.nextInt();
        if(dogAge >= 0 && dogAge <= 2){
            System.out.println("相当于人的年龄:" + dogAge * 10.5);
        }else if( dogAge > 2){
            System.out.println("相当于人的年龄:" + (2 * 10.5 + (dogAge - 2) * 4));
        }else{
            System.out.println("请输入正确的狗狗年龄!");
        }

    }
}

3.彩票问题。假设你想开发一个玩彩票的游戏,程序随机地产生一个两位数的彩票,提示用户输入一个两位数,然后按照下面的规则判定用户是否能赢。
1)如果用户输入的数匹配彩票的实际顺序,奖金10000美元。
2)如果用户输入的所有数字匹配彩票的所有数字,但顺序不一致,奖金3000美元。
3)如果用户输入的一个数字仅满足顺序情况下匹配彩票的一个数字,奖金1000美元。
4)如果用户输入的一个数字仅满足非顺序情况下匹配彩票的一个数字,奖金500美元。
5)如果用户输入的数字没有匹配任何一个数字,则彩票作废。

首先涉及如何获取一个随机数,以获取10-99之间的任意一位两位数为例。
获取随机数需要使用Math.random()方法,该方法会获得一个在[0.0,1.0)之间的double类型的数。
此时得到的随机数区间并不是目标区间,则应在此基础上给该方法获得的区间进行加减乘除运算,以配出所需要的区间。

double value = Math.random(); //区间:[0.0,1.0)
double value = Math.random() * 90; //区间:[0.0,90.0)
double value = Math.random() * 90 + 10; //区间:[10.0,100.0)
根据以上的运算可以获得目标区间[10.0,100.0)。
由此可以得出规律:假如要获取在区间[a,b]中的随机数,可以对Math.random()方法乘以((b-a+1)+a),即可得出目标区间

完整代码如下

import java.util.Scanner;
public class TicketGame {
    public static void  main(String[] args){
        int value = (int)(Math.random() * 90 + 10);
        int valueShi = value/10;
        int valueGe = value%10;
        Scanner scan = new Scanner(System.in);
        System.out.println("请输入一个两位数:");
        int number = scan.nextInt();
        System.out.println("彩票随机数为:" + value);
        int numberShi = number/10;
        int numberGe = number%10;
        if (number == value)
            System.out.println("恭喜获得奖金10000美元");
        else if (numberShi==valueGe && numberGe==valueShi)
            System.out.println("恭喜获得奖金3000美元");
        else if (numberShi==valueShi || numberGe==valueGe)
            System.out.println("恭喜获得奖金1000美元");
        else if (numberShi==valueGe || numberGe==valueShi)
            System.out.println("恭喜获得奖金500美元");
        else
            System.out.println("很遗憾您并未中奖");
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值