输入时退出Java程序

mme*_*hig 0 java loops if-statement exit

该程序允许用户输入一个数字并检查该数字是否为素数.但是,如果希望程序在用户输入"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.");
}
Run Code Online (Sandbox Code Playgroud)

}

Bre*_*dan 7

你不能==在字符串上使用.你必须使用.equals(); 如果你不关心区分大小写,你可以使用.equalsIgnoreCase ()

==运营商比较REFERENCES,而.equals ()比较的字符串CONTENTS

关于==:

比较运算符==不只适用于布尔值.会有什么期望:

 int a = 5;
 int b = 5;

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

使用.equals()时间:

*明确检查相等的值

*当你想要检查是否相等objects; 但仅当该对象覆盖并定义.equals ()方法时.