Преобразование цикла while в цикл do-while в Java

#java #loops

#java #циклы

Вопрос:

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

Я должен преобразовать этот цикл while в цикл do-while. Есть мысли?

 public class DoWhile {
      public static void main(String[] args) {
           Scanner input = new Scanner(System.in); 
           int sum = 0;
           System.out.println("Enter an integer "   "(the input ends if it is 0)"); 
           int number = input.nextInt(); 
           while (number != 0) {
               sum  = number;
               System.out.println("Enter an integer "   "(the input ends if it is 0)"); 
               number = input.nextInt();
           }
      }
}
  

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

1. Вы бы помогли всем читателям вашего вопроса, если бы отформатировали раздел кода с отступом и исправили разрывы строк. Пожалуйста, рассмотрите возможность редактирования.

2. Похоже на вопрос о проверке кода. codereview.stackexchange.com

Ответ №1:

Вы не можете просто преобразовать любой цикл while для выполнения цикла while , основное различие между ними заключается в том, что в цикле do while у вас есть итерация, которая будет выполняться независимо от условия.

       public class DoWhile {
           public static void main(String[] args) {
             int number=0;
             Scanner input = new Scanner(System.in); int sum = 0;
          do{ System.out.println("Enter an integer "  "(the input ends if it is  0)"); 
          number = input.nextInt(); 
          sum  = number;
      }while (number != 0) ;


       }
       }
  

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

1. Я уже знаю это, на самом деле, это пример из dr. Книга Ляна «Введение в Java».

2. Теперь это намного понятнее, спасибо. Извините всех за хлопоты

3. Это не будет компилироваться, поскольку вы объявили number внутри цикла. Исправьте это, и все в порядке.

Ответ №2:

 public class DoWhile {
   public static void main(String[] args) {

   Scanner input = new Scanner(System.in); 
   int sum = 0;
   int number = 0;
   do {
          System.out.println("Enter an integer "  
          "(the input ends if it is 0)");
          number = input.nextInt();
          sum  = number;
   } while(number != 0)
  

}
}

Ответ №3:

Вы должны сообщить программе продолжить выполнение чего-либо в блоке «do». В вашем собственном случае вы должны указать программе продолжать выполнять это » System.out.println(«Введите целое число » «(ввод заканчивается, если оно равно 0)»); number = input.nextInt();
sum = number;». Затем в блоке «while» вам нужно будет указать завершающий оператор, в вашем собственном случае «number ! = 0«

 public class DoWhile {

    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        int sum = 0;
        int number;        
        do {     
            System.out.println("Enter an integer "   "(the input ends if it is 0)");
            number = input.nextInt();
            sum  = number;

        } while (number != 0);
    }
   }
  

Ответ №4:

    public class DoWhile {

       public static void main(String[] args) {

           Scanner input = new Scanner(System.in); int sum = 0;

           System.out.println("Enter an integer "   "(the input ends if it is 0)"); 
           int number = input.nextInt();
           //You need this if statement to check if the 1st input is 0
           if(number != 0)
           {
               do
               {
                    sum =number;
                    System.out.println("Enter an integer "   "(the input ends if it is 0)"); 
                    number = input.nextInt(); 
               }while(number != 0);

          }

     }

}
  

Ответ №5:

classInfoClass

 {
   public void setinfo()


    {
        int  userage;


        do

        { Console.Write("Please enter your age: ");


         } while (!int.TryParse(Console.ReadLine(),out userage));