写一个方法isMultiple确定

时间:2014-10-01 22:24:34

标签: java loops while-loop

问题是 编写一个方法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”时打破它,但无论我输入什么,它都会中断。

1 个答案:

答案 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;