问题是
编写一个方法isMultiple,它为一对整数确定第二个整数是否是第一个整数的倍数。该方法应该采用两个整数参数,如果第二个是第一个的倍数则返回true,否则返回false。
[提示:使用余数运算符。]将此方法合并到一个应用程序中,该应用程序输入一系列整数对(一次一对)并确定每对中的第二个值是否为多个first.har()
这是我的代码
import java.util.*;
public class Multiples {
public static void main(String [] args){
boolean run = true;
while(run = true){
System.out.print("Enter one number:");
Scanner input = new Scanner(System.in);
int num1 = input.nextInt();
int num2 = input.nextInt();
System.out.println("Do you want to enter another pair(y/n)?");
String a = input.next();
boolean result = isMultiple(num1, num2);
if(result = true){
System.out.println(num1 + " is a multiple of " + num2);
}
else{
System.out.println(num1 + " is not a multiple of " + num2);
}
if(YesOrNo(a)){
break;
}
}
}
public static boolean YesOrNo(String a){
if(a == "y")
return false;
else if(a == "n")
return true;
else
return true;
}
public static boolean isMultiple (int x , int y)
{
if(x % y == 0 || y % x == 0)
return true;
else
return false;
}
}
我想在输入“n”时打破它,但无论我输入什么,它都会中断。
答案 0 :(得分:0)
多数民众赞成因为:
if(a == "y")
return false;
else if(a == "n")
return true;
else
return true;
将始终执行else
部分。这意味着YesOrNo(a)
始终为true
,并且始终会打破循环。
这是因为您无法使用String
运算符比较==
。
改为将其改为:
if(a.equals("y"_)
return false;
else if(a.equals("n"))
return true;
else
return true;