我在这段代码中遇到了问题,找不到问题所在,我知道这是一个逻辑错误,但我似乎找不到答案,所有的结果都是0。
代码:
import java.util.Scanner;
public class ConvertNegative {
public static void main (String [] args) {
int userNum = 0;
if (userNum >= 0)
System.out.println("Non-negative");
else
System.out.println("Negative; converting to 0");
userNum = 0;
System.out.format("Final: %d", userNum);
System.out.println("");
return;
}
}如果能帮上忙我会很感激的,谢谢。
发布于 2016-09-27 12:20:24
如果您有多行条件/ for循环,则需要设置括号。如果没有方括号,else块将只执行它后面的第一条语句。在您的例子中是System.out.println("Negative; converting to 0");。在任何情况下,您的变量userName都将被设置为0,因为下面的代码行将不再是else块的一部分。超过1行=括号。
public class ConvertNegative {
public static void main (String [] args) {
int userNum = 0;
if (userNum >= 0)
System.out.println("Non-negative");
else{
System.out.println("Negative; converting to 0");
userNum = 0;
System.out.format("Final: %d", userNum);
System.out.println("");
}
//return; -> There is no need for the return as the main method has no return value.
}
}发布于 2019-06-28 00:42:47
美来自简单。
只需在一行中清理userNum变量,您就可以获得更好的代码,如下所示……
class Main {
public static void main(String[] args) {
int userNum = -5;
userNum = Math.max(userNum, 0);
System.out.println("userNum = " + userNum);
}
}关键是使用Math.max()函数来完成这项工作。
你可以在我的https://repl.it/repls/WildBountifulTriangles的REPL上运行它。
发布于 2016-09-27 12:31:06
else块中缺少大括号。当您的else有多个语句时,必须给出大括号。你也没有从用户那里得到值。因为main方法是void的,所以不需要return语句。
我希望下面的代码能帮助你
import java.util.Scanner;
public class ConvertNegative {
public static void main (String [] args) {
Scanner s = new Scanner(System.in);
System.out.print("Enter a number....");
int userNum = s.nextInt();
if (userNum >= 0)
System.out.println("Non-negative");
else{
System.out.println("Negative; converting to 0");
userNum = 0;
System.out.format("Final: %d", userNum);
System.out.println("");
}
}
}https://stackoverflow.com/questions/39715878
复制相似问题