как мне выполнить программу с самого начала, когда я ввожу специальное значение

#java

#java

Вопрос:

Недавно я выполняю код, одна из конструкций которого заключается в том, что если я введу специальное значение, программа перейдет к шагу 5 (пропусти несколько строк) и вернусь к шагу 1.

 public static void doall(String[] args) throws FileNotFoundException {
    Scanner input = new Scanner(System.in);
    System.out.println("Enter VAL. -1 to end:");
    int val, a, b, c, count = 0;
    val = input.nextInt();
    PrintWriter output=new PrintWriter("Sum.txt");
    while (val != -1) {
        System.out.println("Enter a,b,c:");
        a = input.nextInt();
        b = input.nextInt();
        c = input.nextInt();
        int max, facto, even;
        max = findSum(a, b, c, output);
        output.println("The three original integers are "   a   " "   b   " "   c   " n"
                  max   " is the sum");
        even = howmanyeven(max);
        output.println("there is/are " even  " even number(s)n");
        while (a == 99) {

        }
    }
}
  

что я должен поместить между этим while (a == 99), поэтому, если я введу 99, он пропустит метод findsum и метод evennumber и вернется к началу, которое требует от меня ввода a, b, c. Все ответы приветствуются.

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

1. Мы не можем определить логику для вас, мы не можем знать, что вы хотите, чтобы программа делала.

2. я отредактировал сейчас. извините за путаницу.

Ответ №1:

Сначала вам нужно инициализировать ваши переменные integers равными 0, поскольку они находятся в локальной области видимости и не будут инициализированы в 0 по умолчанию. Я вижу, что вы, вероятно, пытались сделать это в этой строке:

 int val, a, b, c, count = 0;
  

Однако в этом случае значение 0 примет только count , вы не можете инициализировать свои переменные, объявляя их подобным образом.

Что возможно, так это :

 int val, a, b, c, count;
val = a = b = c = 0;
  

Затем вы можете сделать что-то вроде :

 do {
    System.out.println("Enter a,b,c:");
    a = input.nextInt();
    b = input.nextInt();
    c = input.nextInt();
} while(a == 99);

<rest of code here>
  

Надеюсь, это поможет.

Отредактировано: Убедитесь также, что вашей переменной присвоено другое значение val в противном случае ваш цикл будет продолжаться вечно.

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

1. Я пытаюсь добавить что-то через while (a == 99), что, когда я введу 99 в качестве a, программа будет знать, что это 99 — специальное значение, и она остановит выполнение и вернется к while (val!= -1) { System.out.println(«Введите a, b, c:») blablablabla .но все равно спасибо.

2. Затем вы можете выполнить условие, подобное этому: if (a==99) continue; которое вернет вас к условию while.

Ответ №2:

Это может быть проблемой при использовании nextint () в scanner. Попробуйте использовать nexline() и преобразовать его в int. Итак, если вы хотите, чтобы все в одной строке с ‘,’ Используйте разделение строки. Если вы можете ввести число в разных строках, например

 System.out.Print("enter a: ");
  Int a = Int.Parse(input.nextLine());
  System.out.Print("enter b: ");
  Int b = Int.Parse(input.nextLine()); 
  System.out.Print("enter c: ");
  Int c = Int.Parse(input.nextLine());