我就想實(shí)現(xiàn)鍵盤輸入pro1的時(shí)候打印pro1 輸入pro2的時(shí)候打印pro2 輸入exit的時(shí)候退出程序 并且可以循環(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個(gè)贊
歡迎進(jìn)入java世界,第一個(gè)程序沒調(diào)通不要?dú)怵H
你的程序只有一個(gè)關(guān)鍵問題,那就是在java里,不能用==號(hào)來判斷兩個(gè)字符串是否相等(這與你在其他腳本語言中的經(jīng)驗(yàn)可能不符),因?yàn)閖ava是一門強(qiáng)類型語言,字符串是一個(gè)class,兩個(gè)字符串如果用==來比對(duì),實(shí)際上是比對(duì)兩個(gè)object是否相等,得出來的結(jié)論當(dāng)然永遠(yuǎn)是不等。
所以,解決方法很簡(jiǎn)單判斷字符串a(chǎn)與b是否相等,請(qǐng)使用a.equals(b)。這是一個(gè)經(jīng)常犯的錯(cuò)誤,有時(shí)候我寫慣腳本語言再來寫java就會(huì)犯這個(gè)錯(cuò)誤,調(diào)了半天也看不出在哪里出錯(cuò)。
拉風(fēng)的咖菲貓
TA貢獻(xiàn)1995條經(jīng)驗(yàn) 獲得超2個(gè)贊
本身程序的邏輯判斷應(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");
}
}添加回答
舉報(bào)
0/150
提交
取消
