Java将负数转换为0

时间:2016-09-27 04:17:25

标签: java converter zero negative-number

我遇到了这段代码的问题并且无法弄清楚问题,我知道这是一个逻辑错误,但我似乎无法弄清楚,所有结果最终都为0。

代码:

java -DJINTEGRA_NATIVE_MODE Code

感谢您的帮助,谢谢。

4 个答案:

答案 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("");
   ```