2016-04-08 5 views
0

Я пытаюсь сделать калькулятор большого числа на основе узлов на Java, и я хочу повторно распечатать меню калькулятора после операций. Я подумал о том, чтобы использовать goto, но он дает ошибку, предполагая, что goto byte ожидается.Как вернуться в верхнее положение в программе

Я новичок в Java, так что любой может помочь мне с ниже демо код-

up: 
     System.out.println("YOU HAVE FOLLOWING CHOICES : "); 
     System.out.println("1. ADDITION"); 
     System.out.println("2. SUBTRACTION "); 

int i=s.nextInt(); 

     System.out.println("ENTER FIRST NUMBER "); 
     int a=s.nextInt(); 

     System.out.println("ENTER SECOND NUMBER "); 
     int b=s.nextInt(); 
     int result = 0; 
switch(i) 
     { 
      case 1: 
       result=a+b; 
       break; 
      case 2: 
       result=a-b; 
       break; 
default: 
    goto up; 
} 

Спасибо, я просто хочу, чтобы перепечатать меню.

+0

пахнет домашнее задание –

+0

@PhilipVaughn Я чувствовал это тоже, но это все равно вопрос: P –

+0

@PhilipVaughn: Что-то не так с необходимостью помочь с домашней работой? –

ответ

1

Для этого вы должны использовать простой цикл while. Может создать логическое как рабочее состояние и установить его на ложь, когда пользователь вводит что-то другое, чем 1 или 2.

1

Java не поддерживает goto, как это reserved keyword.

Кроме того, ИМХО, используя goto является not a great way to write a program.

Лучшим подходом было бы написать функцию, которая отображает меню и вызывать эту функцию, когда захотите. Или просто используйте цикл do-while.

0

Java не использует goto, поскольку он действительно не вписывается в объектно-ориентированную концепцию (я столкнулся с той же проблемой много лет назад, когда я сделал переход от Basic). Поэтому вам придется пересмотреть логику своего кода, чтобы реализовать какой-то цикл.

Что-то вроде:

do { 
    // add an exit option to the menu 
    System.out.println("YOU HAVE FOLLOWING CHOICES : "); 
    System.out.println("1. ADDITION"); 
    System.out.println("2. SUBTRACTION "); 
    System.out.println("3. EXIT"); 

    // continue with the same logic you had before 

} while (i !=3) 

Я надеюсь, что помогает.

примечание: если вы просматриваете ключевое слово goto в документации Java, вы увидите, что оно зарезервировано, но оно ничего не делает. Они, вероятно, зарезервирован его в качестве заполнителя для таких ситуаций

0

Вот способ посмотреть на «перейти» в среде Java, используя свой код в качестве примера:

public void addUp() { 
    System.out.println("YOU HAVE FOLLOWING CHOICES : "); 
    System.out.println("1. ADDITION"); 
    System.out.println("2. SUBTRACTION "); 

    int i=s.nextInt(); 

    System.out.println("ENTER FIRST NUMBER "); 
    int a=s.nextInt(); 

    System.out.println("ENTER SECOND NUMBER "); 
    int b=s.nextInt(); 
    int result = 0; 
    switch(i) 
    { 
     case 1: 
      result=a+b; 
      break; 
     case 2: 
      result=a-b; 
      break; 
     default: addUp(); 

    } 
} 
+0

ПРЕДУПРЕЖДЕНИЕ: Это очень плохая практика ... Вы будете постоянно добавлять в стек выполнения, используя этот рекурсивный путь. Какая-то петля гораздо безопаснее моего друга. –

+0

Да. Я бы никогда не закодировал этот путь, однако, это дает иллюзию goto в том, что вы видите, где вы называете себя .... –

+1

Другими словами, вы видите концепцию, которую он ищет в Java. Вот самое близкое ему. НИКОГДА НЕ ДЕЛАЙТЕ ЭТО, LOL –

Смежные вопросы