为了账号安全,请及时绑定邮箱和手机立即绑定

代码不长,麻烦哪位好心人看下指正下错误哈。!

代码不长,麻烦哪位好心人看下指正下错误哈。!

德玛西亚99 2023-04-05 17:13:34
我就想实现键盘输入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"); } }
查看完整描述

2 回答

?
拉丁的传说

TA贡献1789条经验 获得超8个赞

欢迎进入java世界,第一个程序没调通不要气馁

你的程序只有一个关键问题,那就是在java里,不能用==号来判断两个字符串是否相等(这与你在其他脚本语言中的经验可能不符),因为java是一门强类型语言,字符串是一个class,两个字符串如果用==来比对,实际上是比对两个object是否相等,得出来的结论当然永远是不等。

所以,解决方法很简单判断字符串a与b是否相等,请使用a.equals(b)。这是一个经常犯的错误,有时候我写惯脚本语言再来写java就会犯这个错误,调了半天也看不出在哪里出错。


查看完整回答
反对 回复 2023-04-07
?
拉风的咖菲猫

TA贡献1995条经验 获得超2个赞

本身程序的逻辑判断应该用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");
	}
}


查看完整回答
反对 回复 2023-04-07
  • 2 回答
  • 0 关注
  • 80 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信