2013-07-29 2 views
-2

Я занимаюсь базой java-работы в течение 12-летнего школьного курса, и изо всех сил пытаюсь найти то, что у меня неправильно в этом коде. Когда num2 больше, чем num1, вывод прекрасен, но когда num1 больше, чем num2, im получает 3 выхода вместо двух. Я не уверен, что я сделал что-то не так с скобками, но я только начинаю изучать java и не могу видеть проблему с этим.Проблема с выдачей переменных в Java

например, если num1 является 3, а num2 2, я получаю 2, 3, 2, как мои выходы, но если num1 2 и num2 3, я получаю 2,3, как мой выход

import java.util.*; 

public class HigherNumber 
{ 
    public static void main (String[] args) 
    { 
     int num1 = 0; 
     int num2 = 0; 
     Scanner scannum1 = new Scanner (System.in); 
     Scanner scannum2 = new Scanner (System.in); 

     System.out.print("Enter your first number: "); 
     num1 = scannum1.nextInt(); 
     scannum1.close(); 

     System.out.print("Enter your second number: "); 
     num2 = scannum2.nextInt(); 
     scannum2.close(); 

     { 
     if (num1 > num2) { 
      System.out.println (num2); 
      System.out.println (num1); 
     } 
     else 
      System.out.println (num1); 
      System.out.println (num2); 
     } 
    } 
} 

ответ

4
else  
System.out.println (num1); 
System.out.println (num2); 

нуждается в открывающую фигурную скобку:

else {  
    System.out.println (num1); 
    System.out.println (num2); 
} 

код в целом (так как вы теряете ваши брекеты везде) следует читать:

import java.util.*; 

public class HigherNumber{ 
    public static void main (String[] args){ 
     int num1 = 0; 
     int num2 = 0; 
     Scanner scannum1 = new Scanner (System.in); 
     Scanner scannum2 = new Scanner (System.in); 
     System.out.print("Enter your first number: "); 
     num1 = scannum1.nextInt(); 
     scannum1.close(); 
     System.out.print("Enter your second number: "); 
     num2 = scannum2.nextInt(); 
     scannum2.close(); 
     if (num1 > num2) { 
      System.out.println (num2); 
     System.out.println (num1); 
     } 
     else{  
      System.out.println (num1); 
      System.out.println (num2); 
     } 
    } 
} 
+0

Когда я пытаюсь это, я получаю File: E: \ HigherNumber.java [строка: 32] Ошибка: Ошибка синтаксиса в знак "другой", удалите этот маркер – Herk

+0

Кроме того, есть необычно размещенная открывающая скобка перед 'if'. Возможно, ошибка копирования-вставки? –

+0

@ DennisMeng См. Редактирование. Герк: Ваши брекеты повсюду. Я исправил их. В следующий раз пусть ваш IDE обрабатывает фигурные скобки и отступы для вас. – hexafraction

0

Нет необходимости создавать два разных сканера - вы можете создать один экземпляр сканера и вызвать nextInt() два разных раза. Как это:

Scanner scannum1 = new Scanner (System.in); 
System.out.print("Enter your first number: "); 
num1 = scannum1.nextInt(); 
System.out.print("Enter your second number: "); 
num2 = scannum1.nextInt(); 
scannum1.close(); 
Смежные вопросы