首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >循环检查两个布尔值总是运行的。

循环检查两个布尔值总是运行的。
EN

Stack Overflow用户
提问于 2015-04-19 19:08:34
回答 1查看 40关注 0票数 0

我是java的初学者,我最近才开始学习接口,所以我试着编写一个程序,其中包含实现整数的类。无论如何,我的程序中的while循环遇到了问题。我想让用户有机会在与知更鸟或人交谈之间做出选择,据我所知,&&会检查这两种情况(如果这两种条件都是真的,则运行循环)。

代码语言:javascript
复制
import java.util.Scanner;
public class App {

public static void main(String[] args) {
    Scanner ai = new Scanner(System.in);
    Conversation guy = new Human();
    Conversation rox = new Robot();
    System.out.println("What do you want to talk to?");
    String choice = ai.nextLine();
    while (choice != "Robot" && choice!= "Person"){
        System.out.println("Option not available, choose again.");
        choice = ai.nextLine();
    }
    switch(choice){
    case "Person":
        System.out.println("What's my name?");
        guy.greet();
        guy.conv();
        guy.bye();
        break;
    case "Robot":
        System.out.println("What's my name?");
        rox.greet();
        rox.conv();
        rox.bye();
        break;
    }
    ai.close();

    }
}

我尝试这样做,以便如果输入既不是"Person"也不是"Robot",它会再次扫描新输入,但是尽管输入不是输入,程序总是运行循环,为什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-04-19 19:09:15

您正在使用String比较对象( == ),它在这里比较引用:

代码语言:javascript
复制
choice != "Robot" && choice!= "Person"

您需要使用.equals()方法来有意义地比较字符串

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29734515

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档