2016-06-21 2 views
-1

У меня есть простой Java-код, и мне нужно зацикливать программу на начало с определенным вводом. Я не могу опубликовать весь код, потому что он предназначен для назначения, но в основном у меня есть раздел «Ввод пользователя, вычисления и печать результатов» в конце, дающий все результаты с предыдущих входов, и теперь мне нужно его перезапустить. Я попытался с помощью цикла Do-While, как это:Как перезапустить/закодировать программу в Java?

do 
    { 
    System.out.println("Enter Another Student? Y or N"); 
    sLoop = console.nextLine(); 
    }while (sLoop.equals("Y") || sLoop.equals("y")); 

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

import java.util.*; 

public class ---- { 

    public static void main (String[] args) { 

    Scanner console = new Scanner (System.in); 

После этого у меня есть пользовательский ввод, который все работает отлично, но я запутался о том, как цикл программы от начала до конца. Я думал, что мне, возможно, придется поместить весь мой код (под консолью сканера) в do, а затем в конце поставить, но я не думаю, что условие для «while» будет работать. Я надеюсь в этом есть смысл. Благодаря!

Кроме того, код работает один. Но когда я начинаю вводить свои данные, он перестает работать и не позволяет вводить пользователя.

+2

делает 'в то время как (sLoop.equals ("Y") || sLoop.equals ("Y"));' должны быть 'в то время как (sRestart.equals ("Y") || sRestart.equals ("y")); '? –

+0

[Это работает для меня.] (Https://ideone.com/EE9m8L). Что-то я сделал в своем тесте, которого вы не делали? – 4castle

+0

Извините, sLoop и sRestart - это то же самое, я хотел изменить их все. Они - одна и та же переменная. – KenwayCreed

ответ

0

Если вы хотите, чтобы петли сумму занавес времени, как в 10 раз или около того:

int x = 0; 
while(x < 10){ 
    //Code here 
    x++; 
} 

Если вам нужно цикл его в течение всего времени:

boolean running = false; 

тот глобальный булево

//When the program starts(Probably in constructor or main method) 
running = true; 

и цикл:

while(running){ 
    //Code you want to loop here 
} 
+2

'Если вы хотите зацикливать время занавеса, например, 10 раз или около того, вы можете использовать цикл for –

+0

Но нет определенного количества раз, когда я хочу перезапустить. Назначение - создать код, который позволяет инструктору вводить информацию о студенте, такую ​​как имя и классы, а затем спрашивать их, хотите ли они ввести другого ученика или нет. Если да, запустите программу сверху. Если нет, остановите программу – KenwayCreed

+0

@ DonatPants Я согласен. я был noob тогда для (int x; x <10; x ++) {// здесь код}, я никогда не учился для циклов, поэтому я не уверен, что это правильно –

0

Ваш первый пример кода - это почти все, что вам нужно. Посмотрите на это работает, например:

import java.util.Scanner; 

public class LoopStudents { 

    public static void main(String[] args) { 

     Scanner console = new Scanner(System.in); 

     String sLoop; 
     do { 
      // do something with the student 
      System.out.println("Enter name of student:"); 
      String name = console.nextLine(); 
      System.out.println("Name = " + name); 

      System.out.println("Enter Another Student? Y or N"); 
      sLoop = console.nextLine(); 
     } while (sLoop.equals("Y") || sLoop.equals("y")); 
    } 
} 
Смежные вопросы