0

このプログラムは、ユーザーに数値を入力させ、その数値が素数かどうかをチェックします。ただし、ユーザーが「q」を入力したときにプログラムを終了する場合。私はいくつかのことを試しましたが(do while、if)、どの方法も機能していないようです。これはどのように発生し、どうすれば解決できますか?

以下はソースコードです。

// Test for primes 2
import java.io.*;
class FindPrime2    {
public static void main(String args[])  
throws IOException  {

//      int num;
    boolean isPrime;
    String str;

    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

    System.out.println("\nFINDING PRIME NUMBERS v0.1");
    System.out.print("\nPlease enter a number: ");


    str = br.readLine();
    if(str == "q") System.exit(1);

    int num = Integer.valueOf(str);


    System.out.println("You have picked: " + num);

    if(num < 2) isPrime = false;
    else isPrime = true;

    for(int i=2; i <= num/i; i++)   {
        if((num % i) == 0)  {
            isPrime = false;
            break;
        }
    }

    if(isPrime) System.out.println(num +" is Prime.");
    else System.out.println(num + " is not Prime.");
}

}

4

1 に答える 1

6

文字列には使用できません==。使用する必要があります.equals(); 大文字と小文字の区別を気にしない場合は、使用できます.equalsIgnoreCase ()

==演算子はwhileREFERENCES比較.equals ()文字列を比較しますCONTENTS

==:

比較演算子==はブール値だけでは機能しません。期待されること:

 int a = 5;
 int b = 5;

 //What will this display?
 a == b ? System.out.print (” True”) : System.out.print (” false”); 

次の場合に使用.equals()します。

*等しい値を明示的にチェックする

objects* ;の等価性を確認したい場合。ただし、そのオブジェクトが.equals ()メソッドをオーバーライドして定義している場合に限ります。

于 2012-06-01T03:11:23.803 に答える