2016-11-20 1 views
0

が実行されますが、偽であってもすべての回答が正の値「8は15の倍数」として返されます。私が見ていないものは分かりません。ここでisMultipleを正しく実行しようとすると、

は私が持っているものです。

import java.util.*; 
public class Multiples { 

public static void main(String [] args){ 

    boolean run = true; 

    while(run = true){ 
    Scanner input = new Scanner(System.in); 
    System.out.print("Enter one number:"); 
    int num1 = input.nextInt(); 
    System.out.print("Enter a second number:"); 
    int num2 = input.nextInt(); 

    boolean result = isMultiple(num1,num2); 


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

    else{ 
     System.out.println(num2 + " is not a multiple of " + num1); 
    } 

    System.out.println("Do you want to enter another pair(y/n)?"); 
    String a = input.next(); 

    if(YesOrNo(a)){ 
     break; 
    } 

    } 

} 

    public static boolean YesOrNo(String a){ 

     if(a.equals("y")) 
      return false; 
     else if(a.equals("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; 

    } 
} 
+0

間違いなく、 'if(result == true)'の代わりに 'if(result = true)'を使うための複製です。もちろん、書くべき最善の方法は単純に 'if(result)'でした。 – janos

答えて

1
if(result = true){ 

if(result == true){ 

(または単に)と交換し

if(result){ 

あなたはそれを割り当てる代わりに、比較しています。

関連する問題