黑马程序员技术交流社区
标题:
闲的没事变了个小程序,结果悲剧了,求教
[打印本页]
作者:
刘建龙
时间:
2012-6-15 22:14
标题:
闲的没事变了个小程序,结果悲剧了,求教
本帖最后由 刘建龙 于 2012-6-20 14:10 编辑
import java.util.Scanner;
public class _121212
{
public static void main(String[] args)
{
judge("你是美女吧?是/否","别这么自恋吧!","别这么没自信吧!","你的输入有误。。。");
}
public static void judge(String a,String b,String c,String d)
{
Scanner sc = new Scanner(System.in);
System.out.println(a);
String ss=sc.nextLine();
if (ss=="是")
{
System.out.println(b);
}
else if (ss=="否")
{
System.out.println(c);
}
else
{
System.out.println(d);
}
}
}
本意识答:是,输出一段字符串;否,输出另一端字符串。但是结果是不能输出对应的字符串。一直都是:你的输入有误。。。但是改为输入int类型后比如0代替是,1代替否,就可以了!难道字符串还有隐藏的字符码?
作者:
薄炳鑫
时间:
2012-6-15 22:28
这事正确的代码,解释见注释部分。
import java.util.Scanner;
public class Test
{
public static void main(String[] args)
{
judge("你是美女吧?是/否","别这么自恋吧!","别这么没自信吧!","你的输入有误。。。");
}
public static void judge(String a,String b,String c,String d)
{
Scanner sc = new Scanner(System.in);
System.out.println(a);
String ss=sc.nextLine();
if (ss.equals("是"))
//这里你用的是==,但是这个==比较的是内存地址,但是你用“是”将会建立两个不同的对象,将有不同的地址值,所以会输出那个输入有误的信息。应该用equals方法,他比较的是对象的值。
{
System.out.println(b);
}
else if (ss.equals("否"))
{
System.out.println(c);
}
else
{
System.out.println(d);
}
}
}
复制代码
作者:
何旭栋
时间:
2012-6-15 22:29
你的“==”改成equals()就行了,字符比较要用equals()方法,比如if ("是".equals(ss))
作者:
宋建华
时间:
2012-6-15 22:37
比较的方式不对
“==”比较的是对象的内存地址
应该用equals(),比较的是对象的值。
作者:
刘建龙
时间:
2012-6-16 20:22
薄炳鑫 发表于 2012-6-15 22:28
这事正确的代码,解释见注释部分。
恩恩,收到,完全的好使了!谢谢啦
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2