2016-03-27 4 views
-1

Я хочу ввести два целых числа, a и b, но если я ввешу более двух целых чисел или меньше двух целых чисел, как я могу отобразить их на экране? Например, я хотел бы отображать «слишком мало аргументов», когда я ввожу только одно целое число.Как подсчитать количество входов в Java

public class Box { 

    public static void main(String[] args) { 

     Scanner in = new Scanner(System.in); 
     int a = in.nextInt(); 
     int b = in.nextInt(); 


     if(a>0){ 
      if(b>0){ 
      for (int i=0;i<b;i++){ 

       for (int j=0;j<a;j++){ 
       System.out.print("*"); 
      } 
      System.out.println(); 
      } 
      }else if(b==0){ 

      }else{ 
       System.out.println("Negative height"); 
      } 
     }else if(a<0){ 
      if(b>0){ 
       System.out.println("Negative width"); 
      }else if(b==0){ 

      }else{ 
       System.out.println("Negative dimensions"); 
      } 

     }else{}   

     } 
    } 
+0

Принимаете ли вы вход с помощью консоли? – Amriteya

+1

Прежде всего, это не имеет никакого смысла: int a = in.nextInt(); int b = in.nextInt(); , после этих двух строк пользователь не сможет ввести больше целых чисел, и если пользователи вводят только одно целое число [say a], то ваша программа на данный момент будет ждать, пока пользователь не войдет в следующее целое число ..... поэтому единственное возможность запуска вашей программы - получить 2 целых ввода. – sharan

ответ

1

Вам не о чем беспокоиться. Если вы введете менее двух целых чисел, система будет ждать, пока вы не введете правильное количество целых чисел, так как блокирует nextInt().

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

Scanner in = new Scanner(System.in); 
String tem = in.next(); 
Scanner parser = new Scanner(tem); 
int a = parser.nextInt(); 
int b = parser.nextInt(); 
if (parser.hasNextInt()){ 
    // Do whatever print 
} 

EDIT: Обратите внимание, что с помощью этой опции, пользователь должен ввести целые числа в пределах одной строки, и пользователь не может войти в число в разных строках, как это можно было бы сделать на вашем пути. Вы получаете преимущество в том, что знаете то, что хотите, но вам нужно сделать дополнительные проверки, чтобы обеспечить правильное выполнение, и никаких исключений не возникает.

> number1 number2 opt

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