首页 > 解决方案 > 在java中使用switch语句为范围创建一个标记

问题描述

所以我有一个任务,我需要使用 switch 语句来识别随机值范围的标记问题是这样的:

请使用 switch 语句识别不同的范围。因此,请遵循建议的标记:

"o" 表示 (0,5] 之间的数字;

"x" 表示 (5, 10] 之间的数字;

"s" 表示 (10, 15] 之间的数字;

“*”表示大于 15 的数字;

import java.util.*;

public class Problem01 {
    public static void main(String[] args) {
        //create random integer
        Random ran = new Random();
        int sum = 0;
        for (int i = 1; i <= 10; i++ ) {
            int random = ran.nextInt(20);
            //Printing the random number
            System.out.print("Number " + "(" + random + "): ");

            //Loop to print markers
            for(int j = 1; j <= random; j++) {
               //I don't know how to use the switch statement at this point, I tried everything and nothing work
            }
        }
    }
}

我在网上搜索了很多,但没有办法,你们能帮帮我吗,非常感谢

标签: java

解决方案


您可以执行以下操作:

import java.util.*;

public class Problem01 {
    public static void main(String[] args) {
        //create random integer
        Random ran = new Random();
        int sum = 0;
        for (int i = 1; i <= 10; i++ ) {
            int random = ran.nextInt(20);
            //Printing the random number
            System.out.print("Number " + "(" + random + "): ");

            switch ((random-1)/5) {
                case 0:
                    System.out.println("o");
                    break;
                case 1:
                    System.out.println("x");
                    break;
                case 2:
                    System.out.println("s");
                    break;
                default: //to handle case where the number is bigger than 15
                    System.out.println("*");
                    break;

            }
        }
    }
}

我不确定你为什么需要内循环。

这是为上述程序生成的输出。

Number (1): o
Number (10): x
Number (5): o
Number (13): s
Number (9): x
Number (13): s
Number (6): x
Number (16): *
Number (16): *
Number (10): x

编辑:没有直接的方法可以将自定义范围与 switch 语句一起使用。这已经回答here


推荐阅读