gpt4 book ai didi

java - 在 IF 语句中定义变量 (Java)

转载 作者:行者123 更新时间:2023-12-02 11:13:58 27 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





Using variables outside of an if-statement

(2 个回答)


4年前关闭。




我目前正在学习 Java,作为其中的一部分,我正在尝试制作一个随机数生成器。

该项目仍处于早期阶段,但是当我制作错误检查器组件时,我遇到了一些问题,我一直想知道为什么它不能以这种方式工作。

以下是错误检查器,它接收 numberAmount(用户请求的随机数数量)和 randomDigit(随机数的最大位数)。

我想让它在金额或数字太高时进行标记,这可能会导致应用程序崩溃。

以下是代码。

public static boolean errorCheck(int numberAmount, int numberDigit){

//int checkAmount = 0;
//int checkDigits = 0;

if (numberAmount > 15){
System.out.println("We can't generate that many numbers!");
int checkAmount = 1;
} else if (numberAmount < 0){
System.out.println("We can't generate negative amount of numbers!");
int checkAmount = 1;
} else if (numberAmount == 0) {
System.out.println("Zero numbers requested");
int checkAmount = 1;
} else {
int checkAmount = 0;
}

if (numberDigit > 15){
System.out.println("We can't generate that many numbers!");
int checkDigit = 1;
} else if (numberDigit < 0){
System.out.println("We can't generate negative amount of numbers!");
int checkDigit = 1;
} else if (numberDigit == 0) {
System.out.println("Zero numbers requested");
int checkDigit = 1;
} else {
int checkDigit = 0;
}


if (checkAmount == 1 || checkDigit == 1){
return true;
} else {
return false;
}
}

当我不插入 int checkAmount = 0;int checkDigits = 0; , last if由于没有可引用的变量而导致的语句错误。但是,如果我确实将其包含在第一个和第二个 if 中的所有检查变量声明我得到预先存在的局部变量的错误。

我尝试了一些修复并在线阅读,但我仍然不明白为什么我不能在 if 中定义或覆盖变量陈述。

最佳答案

I still don't really understand why I can't define or override variables inside if statement.



您可以在 if 中定义它们。语句的受控 block ,但任何变量定义都会在封闭范围的末尾消失。

您不能覆盖已在同一方法中声明的变量。

你需要这样的东西:
int checkAmount = 0;

if (numberAmount > 15){
System.out.println("We can't generate that many numbers!");
checkAmount = 1;
} else // ...

关于java - 在 IF 语句中定义变量 (Java),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45252039/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com