2014-01-17 2 views
1

Это может быть странный вопрос, но есть ли способ остановить сканер в бесконечном цикле, если утверждение if выводится как true или false?Как остановить сканер java без окончания цикла

Например, если у вас есть:

for (;;) { 
    Scanner in = new Scanner(System.in); 
    int a = in.nextInt(); 
    if (a <= 0) { 
    // is there something I could put in here to end the loop? 
    } 
    else { System.out.println("Continue"); } 

Извините, если это глупый вопрос, я новичок во всем этом.

ответ

0

Вы можете break; петлю, если условие в if является true и управление переходит в

for (;;) { 
    Scanner in = new Scanner(System.in); 
    int a = in.nextInt(); 
    if (a <= 0) { 
    break; 
    } 
    else { System.out.println("Continue"); } 
0

Использование break;, но вы shouldn't злоупотреблять этим, было бы лучше, чтобы установить для условия правильно

2

Вместо использования break; можно также использовать время цикла и тест на каждой итерации значения, введенной пользователем:

Scanner in = new Scanner(System.in); 
int a; 
while((a = in.nextInt()) > 0){ 
    System.out.println("Continue"); 
} 
System.out.println("finish"); 
+1

Я думаю, что это лучший solution.It это «чище» шаг по сравнению с использованием 'break' –

0

Использование в break; решает ваш problem.Like это

import java.util.*; 

public class Test { 
public static void main (String[]args) { 
    Scanner in = new Scanner(System.in); 
// Scanner input = new Scanner(System.in); 
    for (int i=0; i< 3;i++) { 
System.out.println("Enter a number"); 
int a = in.nextInt(); 
if (a <= 0) { 
break;// is there something I could put in here to end the loop? 
} 
else { System.out.println("Continue"); } 
} 
}} 
Смежные вопросы