需要一个要求用户输入 2 个整数的程序,检查第二个数字是否是第一个数字的倍数

Need a programs that asks user to enter 2 integers, check to see if 2nd number is multiple of first number

我不明白为什么我的 if-else 语句不能正常工作。这是我目前所拥有的:

import java.util.Scanner;
public class multiple {
   public static void main (String[] args){
        Scanner input = new Scanner (System.in);
        int x = 4;
        int y = 3;
        int multiple = y % x;
        while (multiple != 0){
            System.out.println("Enter two integers: ");
            x = input.nextInt();
            y = input.nextInt();
            if (multiple != 0)
                System.out.println("Oops, sorry! The second integer is NOT a multiple of the first integer.");
            else
                System.out.println("Good Job! " + y + " is a multiple of " + x + "!");
        }       
    }
}

您没有在获取用户 input.Change 后更新 multiple 您的代码 this.it 应该可以工作。

import java.util.Scanner;
public class multiple {
public static void main (String[] args){
    Scanner input = new Scanner (System.in);
    int x = 4;
    int y = 3;
    int multiple = y % x;
    while (multiple != 0){
System.out.println("Enter two integers: ");
    x = input.nextInt();
    y = input.nextInt();
   multiple = y % x;
        if (multiple != 0)
            System.out.println("Oops, sorry! The second integer is NOT a multiple of the first integer.");
        else
            System.out.println("Good Job! " + y + " is a multiple of " + x + "!");
    }       
}

}

每次更改 x 和 y 时都必须更新多重变量。您现在拥有的是每次检查 4%3 是否为 0。

换句话说,在更新 x 和 y 后将倍数设置为 y%x。

为了补充 Prince 和 playitright 所说的话,我想

  1. 检查用户输入的数字是否不为零。这非常重要,否则您可能会遇到运行时异常。
  2. 您正在尝试 y%x 而不是 x%y。

因为你选择的数据类型都是int,所以x%y也要勾选

假设,

x=3 和 y=6,您的解决方案有效,但如果我们只是反转 x=6 和 y=3 的值,则输出不正确。