java - 有什么方法可以在 if 语句中定义整数范围?
问题描述
当我尝试在 if 语句中定义整数或尝试定义整数范围时,它会返回一条错误消息,提示“无法访问代码”
我尝试了几种不同的方法,例如将 if 语句更改为
if (rand == 33)
if (rand.nextInt == 33)
它分别返回错误消息“不兼容的操作数类型 Random 和 Int”、“nextInt 无法解析或不是字段”。
然后我尝试了
if (rand.nextInt() == 33)
然后吐回“无法访问的代码”。
对于范围问题,我尝试了 33-0, 0-33 不起作用。
public static void main(String args[]){
System.out.println("Random Integers:"+computeRandom());
}
public static int computeRandom() {
//create instance of Random class
Random rand = new Random();
//Generate random integers in range 0 to 100
rand.nextInt(101); //83
return rand.nextInt();
if (rand.nextInt() == 33) {
}
我希望它最终会返回字母“A”,具体取决于它在该范围打算为 0-33 时所处的范围。
解决方案
您发布的代码存在多个问题,但我们可以很容易地修复它们。首先,您的main()
方法目前只会显示一个值;添加一个循环 - 如果您希望看到一个字母,那么computeRandom()
应该返回一个char
(而不是一个int
)。
public static void main(String args[]) {
for (int i = 0; i < 10; i++) {
System.out.println("Random Integers: " + computeRandom());
}
}
你不应该Random
在你的computeRandom
方法中构造,很有可能在循环中调用它会多次计算相同的种子(所以你的随机数不会是随机的)。将其作为static
字段构造一次(如此处),或将其作为参数传递给computeRandom()
. 接下来,要测试范围0 - 33
,您只需要测试您的值(应该保存,因为每次调用都Random.nextInt()
应该返回不同的值)小于 34(因为value
在范围内0 - 100
)。最后,当值不在所需范围内时,您应该返回一些东西;你想要A
有效,所以我选择B
了无效。喜欢,
private static final Random _RANDOM = new Random();
public static char computeRandom() {
// Generate random integers in range 0 to 100
int val = _RANDOM.nextInt(101);
if (val < 34) {
return 'A';
}
return 'B';
}
如果你不知道value
已经有一个下界,0
你会想要一个逻辑和带有if
. 喜欢,
if (val >= 0 && val <= 33) {
return 'A';
}
推荐阅读
- android - 数据绑定找不到标识符“视图”
- html - Flex No Wrap 导致父元素换行
- sap - 如何在 SAP HANA 中将 NCLOB 列查询为表?
- node.js - 如何使用 AWS Lambda 函数通过 SSH 连接到我的 EC2 实例?
- c# - 除了将所有内容添加到 Startup 类之外,是否有一种强大的方法可以在 ASP.NET Core 3.1 中注册依赖项?
- cmake - 带有特殊符号的 CMake 路径
- javascript - 如何使用 JavaScript 在使用 History API HTML5 的 Web 上触发按钮单击?
- python - TensorFlow.Data.Dataset 和 DatasetV1Adapter 一样吗?
- android-studio - 为什么热重载后没有将更改保存到设备?
- javascript - 试图让按钮出现在鼠标悬停上