java - 为什么我的代码在输入负值时无法执行?

标签 java java.util.scanner

抱歉,我刚刚学习 Java,而且是编码新手! 我的代码的任务是根据奇数和偶数评估输入。 如果没有 math.abs 行,代码将无法正确识别负数的奇/偶值。

我使用 math.abs 命令进行了修复,以转换负值并获得所需的结果。但是,我只是想知道为什么这一步是必要的,以及 java 扫描仪如何解释负值/符号并在没有我修复的情况下提供错误的答案。

import java.util.Scanner;

public class EvenOrOdd {

    public static void main(String[] args) {
        Scanner reader = new Scanner(System.in);

        System.out.print("Type a number: ");
        int x = Integer.parseInt(reader.nextLine());
        int f = Math.abs(x);

        if ( f % 2 == 1){
            System.out.println("The number is odd.");
        }
        else {
            System.out.println("The number is even.");
        }
    }
}

最佳答案

负数除以正数的余数将为负数。

-1 % 2  

-1

但由于它不是 1,因此您将声明它是偶数。

关于java - 为什么我的代码在输入负值时无法执行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56330919/

相关文章:

java.io.IOException : Server returned HTTP response code: 502 异常

java - Android 正确使用线程。连续随机弹出图像

java - Java中作为函数参数的函数

java - 使用扫描仪和开关盒找不到符号

compiler-errors - 运行时扫描变量时出错

Java 循环 Scanner.hasNext() 在第一次评估为 false 后始终评估为 false

java - 工厂创建的对象可以有构造函数吗?

java - 如何在不映射根 xml 元素的情况下解码 xml?

java - 从文本文件中读取一行 Java

java - 使用扫描仪读取单个字符