代码不长,麻烦哪位好心人看下指正下错误哈。 我就想实现键盘输入pro1的时候打印pro1 输入pro2的时候打印pro2 输入exit的时候退出程序 并且可以循环输入直直退出 实际运行效果是不管输入什么打印的都是”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");
}
}
呵呵,欢迎进入java世界,第一个程序没调通不要气馁
你的程序只有一个关键问题,那就是在java里,不能用==
号来判断两个字符串是否相等(这与你在其他脚本语言中的经验可能不符),因为java是一门强类型语言,字符串是一个class,两个字符串如果用==
来比对,实际上是比对两个object
是否相等,得出来的结论当然永远是不等。
所以,解决方法很简单判断字符串a与b是否相等,请使用a.equals(b)
。这是一个经常犯的错误,有时候我写惯脚本语言再来写java就会犯这个错误,调了半天也看不出在哪里出错。
除了joyqi说的字符串对比问题,本身程序的逻辑判断应该用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");
}
}
正文完