怎样退出这个死循环,并且输出结果中有这两句话其中一句

问题遇到的现象和发生背景
为什么退出不了死循环?用Debug调试你选择的是 波斯猫或者你选择的是挪威森林猫
这两句话都输出不了 非常感谢!

用代码块功能插入代码,请勿粘贴截图

java
public class Test {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("欢迎来到E宠之家!");
System.out.println("请输入要领养宠物的名字");
System.out.println("请选择要领养的宠物类型: 猫咪 或者 猪猪");
String name = sc.next();
switch(name){
case "猫咪":
System.out.println("请选择猫咪的品种:波斯猫 or 挪威森林猫");
Scanner sc1 = new Scanner(System.in);
String strain = sc1.next();
if(strain == "波斯猫"){
System.out.println("你选择的是 波斯猫");
}
else if(strain == "挪威森林猫"){
System.out.println("你选择的是 挪威森林猫");
}
Cat cat = new Cat(name,strain);
while (true) {
System.out.println("请根据您的需要选择");
System.out.println("1.查看宠物信息");
System.out.println("2.给宠物喂食物");
System.out.println("3.配宠物玩耍");
int operation = sc.nextInt();
if(operation == 1)
{
cat.introduce();
}
else if(operation == 2)
{
cat.eat();
}
else if (operation == 3)
{
cat.play();
}
System.out.println("您是否要退出E宠之家(yes or no)");
String input = sc.next();
if (input == "yes" ){
break;
}
if (input == "no"){
System.out.println("继续为您服务");
}
}
break;
case "猪猪":
System.out.println("请选择猪猪的品种:1.猪GG or 2.猪MM)");
int num = sc.nextInt();
String sex = null;
if(num == 1)
{
sex ="猪GG";
}
else if (num == 2)
{
sex ="猪MM";
}
Pig pig = new Pig(name,sex);
Boolean flag1 = true;
while (flag1) {
System.out.println("请根据您的需要选择");
System.out.println("1.查看宠物信息");
System.out.println("2.给宠物喂食物");
System.out.println("3.配宠物玩耍");
int operation = sc.nextInt();
if(operation==1)
{
pig.introduce();
}
else if(operation==2)
{
pig.eat();
}
else if(operation == 3)
{
pig.play();
}
System.out.println("是否退出E宠之家?(yes/no)");
String input = sc.next();
if (input == "yes" ){
flag1 = false;
break;
}
else if (input == "no"){
System.out.println("继续为您服务");
}
}
}
System.out.println("退出E宠之家!");

}

}

java
public class Cat {
private String name;
private String strain;
private int strength;
private int mood;

public Cat (String name,String strain)
{
    this.name=name;
    this.strain=strain;
}

public String getName()
{    return name;}

public String getStrain()
{    return strain;}

public int getMood()
{     return mood;}

public int getStrength()
{    return strength;}

public void introduce()
{    System.out.println("亲爱的主人,我的名字叫"+this.name+
        "我的品种是"+this.strain+"我现在的心情值为"+mood+"我目前的体力值为"+strength);
}

public void eat()
{    if(strength>120)
{System.out.println("猫咪需要多运动");}
else
{
    strength += 10;
    System.out.println("猫咪"+this.name+"吃饱了,体力值增加10.现在的体力值为"+mood);
}
}

public void play()
{    if(strength<60)
{
    System.out.println(this.name+"生病了");
}
else {
    strength -= 10;
    mood +=5;
    System.out.println("正在和主人玩耍。目前的体力值为"
            +this.strength+"目前的心情值为"+this.mood);
}
}

}

java
public class Pig {
private String name;
private String sex;
private int mood=20;
private int strength=100;

public Pig(String name2, String sex2) {
    // TODO Auto-generated constructor stub
}

public String getName()
{    return name;}

public void setName(String name)
{  this.name = name;}

public String getSex()
{
    return sex;
}

public void setSex(String set)
{ this.sex = sex;}

public int getMood()
{
    return mood;
}

public int getStrength()
{
    return strength;
}

public void introduce()
{
    System.out.println("亲爱的主人,我的名字叫"+this.name+"是一只胖胖的"
            +this.sex+"我目前的体力值是"+this.strength+"我目前的心情值是"+this.mood);
}

public void eat()
{
    if(strength>100)
    {
        System.out.println("猪猪需要多运动");
    }
    else
    {
        strength +=5;
        System.out.println("猪猪"+this.name+"吃饱了,体力值增加5,目前的体力值为"+this.strength);
    }
}

public void play()
{
    if(strength<60)
    {
        System.out.println("猪猪生病了");
    }
    else
    {
        strength -= 5;
        mood +=5;
        System.out.println("正在和主人玩耍,目前的体力值是"+this.strength+"心情值是"+this.mood);
    }
}
运行结果及报错内容

欢迎来到E宠之家!

请输入要领养宠物的名字
请选择要领养的宠物类型: 猫咪 或者 猪猪
猫咪
请选择猫咪的品种:波斯猫 or 挪威森林猫
波斯猫
请根据您的需要选择
1.查看宠物信息
2.给宠物喂食物
3.配宠物玩耍
1
亲爱的主人,我的名字叫猫咪我的品种是波斯猫我现在的心情值为0我目前的体力值为0
您是否要退出E宠之家(yes or no)
yes
请根据您的需要选择
1.查看宠物信息
2.给宠物喂食物
3.配宠物玩耍

我的解答思路和尝试过的方法

是否需要两个break 一个给switch 一个给while(true)的死循环

我想要达到的结果

成功运行代码!

字符串比较相等不能用==,用equals ,改成if ( "yes".equals(input) ),下边所有这样的都换成equals,不然不满足条件一直死循环,不会执行break

img


这些也都得换掉

img

请用 ‘代码块’ 填写代码