有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java编写一个确定

问题是
编写一个方法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) 个答案

  1. # 1 楼答案

    这是因为:

    if(a == "y")
        return false;
    else if(a == "n")
        return true;
    else
        return true;
    

    将始终执行else部分。这意味着YesOrNo(a)将始终是true,并且将始终打破循环

    这是因为无法使用==运算符比较Strings

    改为:

    if(a.equals("y"_)
        return false;
    else if(a.equals("n"))
        return true;
    else
        return true;