Java: как завершить цикл «do while» после последнего запуска

#java #do-while

#java #do-while

Вопрос:

Как мне изменить свой код, чтобы последняя распечатка была пустой печатью вместо ‘ ‘?

На основе заданного числа x в runLoop(x) , код выводит » » в строке.

Например runLoop(5) , печатает ' ' , после этого я хочу получить пустую печать, но в итоге получаю » «.

РЕДАКТИРОВАТЬ: я думаю, это потому, что программа запускает «do» перед проверкой «while». Сначала программа запускает runLoop (5), поэтому она ожидает, что результат будет » «, во второй раз она запускает runLoop (0), поэтому программа ожидает получить пустую строку, вместо этого она получает » «. То, что я пытаюсь сделать, это получить пустую строку вместо » «.

 public static void runLoop(int x){

    do {
        System.out.print(" ");
        x--;

    }while ( x > 0);
        System.out.println("");
}
  

Комментарии:

1. Что вы имеете в виду под «пустой печатью»?

2. Как вы увидите "" ?

3. Вы можете остановить цикл с break помощью ключевого слова. Если это то, что вы ищете.

Ответ №1:

Я не думаю, что это хорошо, пока проблема

 public static void runLoop(int x){
    string token = ""
    do {
        System.out.print(token);
        x--;
        token = " "
    }while ( x >= 0);
    System.out.println("");
}
  
 public static void runLoop(int x){
    if(x < 1){
       System.out.println("");
       return;
    }
    do {
        System.out.print(" ");
        x--;
    }while ( x > 0);
    System.out.println("");
}
  

Ответ №2:

Я не уверен, что понял ваш вопрос. Но если вы хотите, чтобы последний вывод был другим, просто сделайте while равным be x=>0 и распечатайте что-нибудь после

 public static void runLoop(int x){

    do {
        System.out.print(" ");
        x--;

    }while ( x >= 0);
        System.out.println("");
   //you can print what you need after the while loop  
   //System.out.println("");
}
  

Комментарии:

1. Я пробовал, не сработало. Я думаю, это потому, что программа запускает «do» перед проверкой «while». Сначала программа запускает runLoop (5), поэтому она ожидает, что результат будет » «, во второй раз она запускает runLoop (0), поэтому программа ожидает получить пустую строку, вместо этого она получает » «. То, что я пытаюсь сделать, это получить пустую строку вместо » «.

Ответ №3:

Кажется, я не могу воспроизвести ошибку, которую вы описываете, с помощью предоставленного вами кода. Вы уверены, что вне метода нет печати ?

Почему бы не развернуть его и просто распечатать последний с разрывом строки?

 private static void loop(int x) {
    while ( x > 1) {
        System.out.print(" ");
        x--;
    }
    System.out.println(" ");
}
  

Комментарии:

1. Я сделал это в своем последнем упражнении, теперь они запрашивают цикл «do while» 🙂