【问题标题】:why wont my while loop break [duplicate]为什么我的while循环不会中断[重复]
【发布时间】:2018-06-01 23:08:45
【问题描述】:

我不知道为什么我的 while 循环不会中断并且它一直在运行

import java.util.Scanner;
public class BirthdayReminder
{

   public static void main (String[] args)
   {
      Scanner input = new Scanner(System.in);
      String[] BDay = new String[10];
      String[] friend = new String[10];
      int Lc = 0;
      String i;

      while(Lc < 10) {
            System.out.println("enter a friends name or zzz to quit");
            i = input.nextLine();
            if(i == "zzz") { 
                break;
            }
            else if(i != "zzz"){
            friend[Lc] = i;
            System.out.println("enter their birthday.");
            i = input.nextLine();
            BDay[Lc] = i;
            Lc++;
            return;
            }
      }
      System.out.println("hi");

   }

}

【问题讨论】:

  • Java 基础知识,这将始终返回 false:i == "zzz"。应该改为"zzz".equals(i)
  • @LuisMuñoz 它不会总是返回 false。
  • 这种情况下,变量i和匿名对象“zzz”怎么可能是同一个对象呢?
  • 感谢您对 "zzz".equals(i) 的帮助。

标签: java loops while-loop break


【解决方案1】:

您需要使用equals()而不是==来检查字符串是否相等。 if 中的代码块都没有被输入,所以 Lc 永远不会增加。

【讨论】:

    猜你喜欢
    • 2021-04-14
    • 1970-01-01
    • 2012-10-01
    • 1970-01-01
    • 2012-11-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-23
    相关资源
    最近更新 更多