2016-05-10 2 views
1

Я создал программу, которая просит пользователя ввести 5 цифр, а затем программа набирает сумму этих цифр. Я хочу знать, как я могу заставить программу запрашивать число снова и снова после вычисления один раз. Я хочу, чтобы пользователь снова попробовал п снова, пока сам не захочет бросить курить.Продолжить выполнение программы

public static void main(String[] args) { 

    int num=1362; 
    int i,t=0; 
    int store; 

    for(i=0; i<=5; i++) 
    { 

     store=num%10; 
     num=num/10; 
     t=t+store; 

    } 

    System.out.println("The sum of the digits of 1362 is " +t); 
} 
+0

Как пользователь останавливает выполнение? С ключевым словом? – FedeWar

+2

Используйте петли. Попытайтесь записать его на бумаге с некоторым псевдокодом, а затем попробуйте написать Java-код для этого. Отправьте свои попытки, и мы попытаемся исправить ваши ошибки. – Pshemo

+0

Попробуйте цикл while-while. Запустите один keyworkd для выхода и другой, чтобы продолжить, попросив пользователя, если он хочет выйти, нажмите x, если не нажмите c (например) –

ответ

1

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

public static void main(String[] args) { 
    int num=1362; 
    int i,t=0; 
    int store; 
    Scanner in = new Scanner(System.in); 
    while(in.hasNextInt()) 
    { 
     t = 0; 
     store = 0; 
     num = in.nextInt(); 
     for(i=0; i<=5; i++) 
     { 
      store=num%10; 
      num=num/10; 
      t=t+store; 
     } 
     System.out.println("The sum of the digits is " +t); 
    } 
    in.close(); 
} 
+0

Несмотря на то, что эта программа выходит из нее, поэтому она не имеет никакого эффекта, обычно не рекомендуется закрывать «Сканер», привязанный к 'System.in'. Здесь есть несколько вопросов о том, почему ввод больше не читается, и они отслеживают закрытие сканера на stdin. – KevinO

1

Мое решение: Пользователь вводит 5 чисел, после чего сумма рассчитывается и пользователю будет предложено, если он хочет повторить его (без обработки исключений).

BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); 

String repeat = ""; 
do { 
    try { 
     int[] digits = new int[5]; 
     System.out.println("Enter 5 digits: "); 

     for (int i = 0; i < digits.length; i++) { 
      System.out.printf("Digit %d:", i + 1); 
      String input = br.readLine(); 
      digits[i] = Integer.parseInt(input); 
     } 

     int sum = 0; 
     StringBuilder sb = new StringBuilder(); 
     for (int i = 0; i < digits.length; i++) { 
      sum += digits[i]; 
      sb.append(digits[i]); 
     } 

     System.out.printf("The sum of the digits of %s is %d.", sb.toString(), sum); 
     System.out.println("Repeat? (y/n)"); 
     repeat = br.readLine(); 

    } catch (NumberFormatException e) { 
     // TODO: handle wrong user input 
    } catch (IOException e) { 
     // TODO: handle io exception 
    } 
} while (repeat.equals("y")); 

try { 
    br.close(); 
} catch (IOException e) { 
    // TODO: handle IOException 
} 
Смежные вопросы