我就想實(shí)現(xiàn)鍵盤輸入pro1的時候打印pro1 輸入pro2的時候打印pro2 輸入exit的時候退出程序 并且可以循環(huán)輸入直直退出 實(shí)際運(yùn)行效果是不管輸入什么打印的都是"Reinput",知道這里大牛多,別笑話我啊~~import java.io.*;public class TestWhile{ public static void main(String[] args){
try{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String s = br.readLine(); while(s != "exit"){ while(s == "pro1"){ System.out.println("pro1");
s = br.readLine();
} while(s == "pro2"){ System.out.println("pro2");
s = br.readLine();
} while((s != "pro1")&&(s != "pro2")&&(s != "exit")){ System.out.println("Reinput");
s = br.readLine();
}
}
}
catch(IOException e){
e.printStackTrace();
} System.out.println("The end");
}
}
2 回答

拉丁的傳說
TA貢獻(xiàn)1789條經(jīng)驗(yàn) 獲得超8個贊
歡迎進(jìn)入java世界,第一個程序沒調(diào)通不要?dú)怵H
你的程序只有一個關(guān)鍵問題,那就是在java里,不能用==
號來判斷兩個字符串是否相等(這與你在其他腳本語言中的經(jīng)驗(yàn)可能不符),因?yàn)閖ava是一門強(qiáng)類型語言,字符串是一個class,兩個字符串如果用==
來比對,實(shí)際上是比對兩個object
是否相等,得出來的結(jié)論當(dāng)然永遠(yuǎn)是不等。
所以,解決方法很簡單判斷字符串a(chǎn)與b是否相等,請使用a.equals(b)
。這是一個經(jīng)常犯的錯誤,有時候我寫慣腳本語言再來寫java就會犯這個錯誤,調(diào)了半天也看不出在哪里出錯。

拉風(fēng)的咖菲貓
TA貢獻(xiàn)1995條經(jīng)驗(yàn) 獲得超2個贊
本身程序的邏輯判斷應(yīng)該用if更為合適。
import java.io.*;public class TestWhile{ public static void main(String[] args) { try { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String s = br.readLine(); while (!s.equals("exit")) { if (s.equals("pro1")) { System.out.println("pro1"); } else if (s.equals("pro2")) { System.out.println("pro2"); } else { System.out.println("Reinput"); } s = br.readLine(); } } catch(IOException e) { e.printStackTrace(); } System.out.println("The end"); } }
添加回答
舉報
0/150
提交
取消