Ara*_*mza 1 java converter zero negative-number
我遇到了这段代码的问题并且无法弄清楚问题,我知道这是一个逻辑错误,但我似乎无法弄明白,所有结果最终都为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;
}
}
Run Code Online (Sandbox Code Playgroud)
我很感激任何帮助,谢谢.
如果您有多行条件/ 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.
}
}
Run Code Online (Sandbox Code Playgroud)
美源于简单。
userNum只需像这样清理一行中的变量,您将获得更好的代码......
class Main {
public static void main(String[] args) {
int userNum = -5;
userNum = Math.max(userNum, 0);
System.out.println("userNum = " + userNum);
}
}
Run Code Online (Sandbox Code Playgroud)
关键是使用该Math.max()功能来完成工作。
您可以在我的 REPL 上运行它:https://repl.it/repls/WildBountifulTriangles
| 归档时间: |
|
| 查看次数: |
1982 次 |
| 最近记录: |