import java.util.*;
import java.io.*;
public class MainClass {  public static void main(String[] args) throws IOException { String function = "";
String instance_file = "";
String gender = "";

        try{
            InputStreamReader isr = new InputStreamReader(System.in);
            BufferedReader br = new BufferedReader(isr);
            System.out.println("Enter your command:train or test");
            function = br.readLine(); 
                 
        while ((!function.equals("train"))|(!function.equals("test")))//问题在这里
        { 
        System.out.println("You typed: " + function);      
        System.out.print("Enter your command:train or test: "); function = br.readLine(); 
      }
      }catch(IOException ioe){
            System.err.println("IOException: " + ioe.getMessage());
        }        
        if(function.equals("train"))
System.out.println("Now training...");
else if (function.equals("test"))
System.out.println("Now testing...");

  }
}我想运行程序后,等待用户输入,直到用户输入train或者test中的一个,就跳出等待,给出不同的输出。
现在的问题是我只能用while来等待一个输入,比如:while (!function.equals("train")),但如果等待两个就会出问题。
各位大侠帮忙解决以下,多谢多谢。

解决方案 »

  1.   

    怎么把两个boolean值按位或啊
    是||把
      

  2.   

    改成这样
    while ((!function.equals("train"))&&(!function.equals("test")))
      

  3.   

    或者
    while (!((function.equals("train"))||(function.equals("test"))))
      

  4.   

    while ((!function.equals("train"))|(!function.equals("test")))
    应该是这样
    while ((!function.equals("train"))&(!function.equals("test")))
      

  5.   

    应该是:
    while ((!function.equals("train"))&&(!function.equals("test")))
      

  6.   

    多谢各位,while ((!function.equals("train"))&&(!function.equals("test")))可以work,马上给gefengxztg(戈峰)加分,同时也多谢其他各位大侠,多谢多谢。