Java путаница с условным выражением - PullRequest
0 голосов
/ 20 июня 2020

Тестирование простого while l oop, но я запутался, если bottle равно 1, имя "bottle".

Но даже когда bottle больше, чем 1, он по-прежнему печатает "bottle", а не "bottles"

public class ex {
  public static void main(String[] arg) {
    int bottle = 0;
    String name = "bottles";
    while (bottle < 100) {
      if (bottle == 1) {
        name = "bottle";
      }
      System.out.println(bottle + " " + name);
      ++bottle;
    }
  }
}

Ответы [ 3 ]

2 голосов
/ 20 июня 2020

После установки name = "bottle"; тогда имя всегда будет "bottle", если вы не измените его обратно. После оператора if добавьте:

else {
    name = "bottles";
}
2 голосов
/ 20 июня 2020

Переменная name сохраняет значение в единственном числе, поскольку никогда не переназначается со значением "бутылок" . Попробуйте это:

public static void main(String[] arg) {
  int bottle = 0;
  String name = "bottles";
  while( bottle < 100) {
    name = "bottles"
    if(bottle == 1) {
      name = "bottle";
    }
    System.out.println(bottle + " " + name);
    ++bottle;
  }
}
0 голосов
/ 20 июня 2020
  if (bottle == 1) {
    name = "bottle";
  }else{
    name = "bottles";
  }
...