注册 登录
编程论坛 JAVA论坛

为什么这里跳不出循环?(无关代码已省略)

kevin_c 发布于 2015-10-27 21:56, 732 次点击
程序代码:
class ArrayOption{
    private String[] str = new String[100];
    public ArrayOption(){
    //int jdg;
    Scanner sc = new Scanner(System.in);
    System.out.println("input something into the array:");
    for(int i = 0;i<str.length;i++){
        str[i] = sc.next();
        if(str[i] == "break"){break;}
        }
5 回复
#2
kevin_c2015-10-27 22:06
只有本站会员才能查看附件,请 登录

输入break,但还是跳不出循环,为什么呢?
#3
calix2015-10-27 23:11
if(str[i] == "break")
改成
if("break".equals(str[i]))
试试
#4
kevin_c2015-10-28 08:50
回复 3楼 calix
为什么str[i]=="break"会不起作用呢?
#5
calix2015-10-28 09:29
==和equals有区别,前者判断是否是同一对象,后者比较的是内容是否相同
这块不能用==是因为每次扫描获取到的结果都会重新开辟空间存储,跟之前的不是同一个对象
一般除了基本数据类型,在使用==的时候都要注意
#6
kevin_c2015-10-28 09:46
回复 5楼 calix
哦~懂了,谢谢
1