gpt4 book ai didi

java - 尝试创建一个函数,该函数接受两个 long 值并当且仅当第一个值是第二个值的倍数时返回 true

转载 作者:行者123 更新时间:2023-11-30 03:15:49 25 4
gpt4 key购买 nike

我很难理解为什么这个函数表现不正确。

如果我将 num1 的值设置为 10,将 num2 的值设置为 20,则运行时,程序会告诉我 10 是值 20,但实际上并非如此。当我切换这些值并使 num1 为 20 且 num2 为 10 时,它告诉我 num1 是 num2 的倍数 - 这是正确的。

如果有人可以向我解释我哪里出错了,并且他们是否可以向我展示代码的正确版本(如果可能的话),我将不胜感激!

public class Multiple {

public static void main(String[]args) {
boolean multiple = true;

while(multiple = true) {
long num1 = 10;
long num2 = 20;
boolean result = isMultiple(num1, num2);

if (result = true) {
System.out.println(num1 + " is a multiple of " + num2);
} else {
System.out.println(num2 + " is not a multiple of " + num1);
}
break;
}
}

public static boolean isMultiple(long x, long y) {
if (x % y == 0) {
return true;
} else if (y % x == 0) {
return false;
}
return false;
}
}

最佳答案

if (result = true)实际上是设置 resulttrue。应将其更改为 result == true。我不确定 while 循环的目的,但我知道 isMultiple 方法绝对可以简化。不管怎样,我纠正了 if 条件并进行了一些其他重构。

public class Multiple {

public static void main(String[] args) {

long num1 = 10;
long num2 = 20;

if (isMultiple(num1, num2)) {
System.out.println(num1 + " is a multiple of " + num2);
} else {
// num1 should come before num2 here
System.out.println(num1 + " is not a multiple of " + num2);
}
}

public static boolean isMultiple(long x, long y) {

// check that x is a multiple of y
return x % y == 0;
}
}

关于java - 尝试创建一个函数,该函数接受两个 long 值并当且仅当第一个值是第二个值的倍数时返回 true,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32639186/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com