我遇到了这段代码的问题并且无法弄清楚问题,我知道这是一个逻辑错误,但我似乎无法弄清楚,所有结果最终都为0。
代码:
java -DJINTEGRA_NATIVE_MODE Code
感谢您的帮助,谢谢。
答案 0 :(得分:5)
如果您有多行条件/ 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.
}
}
答案 1 :(得分:0)
你在else块中错过了大括号。当你的其他人有多个陈述时,你必须给大括号。你也没有从用户那里得到价值。由于main方法是void,因此不需要return语句。
希望以下代码可以帮助您
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteCond %{REQUEST_URI} !^(folder1|folder2)
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R,L]
答案 2 :(得分:0)
美丽源于简单
只需在一行中清除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上运行它
答案 3 :(得分:-1)
您需要通过添加正确的花括号并将else与底部打印命令分开来重新编写代码。
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("");
```