2013-11-21 5 views
-1

Я получаю в противном случае, если ошибка на последнем, и, похоже, не может ничего с этим поделать. может ли кто-нибудь сказать мне, что кажется проблемой? благодаря!Else without if error на одной строке

public class FindMin 
{ 
public static void main(String[] args) 
{ 
    Scanner keyboard = new Scanner(System.in); 

    int smallest = 9999999; 
    String userInput; 
    boolean quit = false; 

    System.out.println("This program finds the smallest number" 
     + " in a series of numbers"); 
    System.out.println("When you want to exit, type Q"); 

    while(quit != True) 
    { 
     System.out.print("Enter a number: "); 
     userInput = keyboard.next(); 
     if(userInput.equals("Q")) userInput.equals("q"); 
     { 
      if (quit = true); 

      } 
      else    

      { 

      int userNumber = Integer.parseInt(userInput); 

      if(UserNumber < smallest) 
       smallest = userNumber; 
     } 
    } 
    System.out.println("The smallest number is " + smallest); 
    System.exit(0); 
} 
} 
+0

Оба ваших оператора 'if' имеют полный оператор. Первый - 'userInput.equals (" q ");', второй - ';'.Удалите их, чтобы решить вашу проблему. –

+1

У вас много синтаксических ошибок ... Я бы посоветовал вернуться с этой ссылкой> http://www.tutorialspoint.com/java/java_basic_syntax.htm. –

+0

'if (x); x ++ 'совпадает с' if (x) {} x ++ 'и' x' всегда будет увеличиваться. предложение 'else' помогло вам избежать очень сложной ошибки. –

ответ

2
if (quit = true); 

Удалите точку с запятой, добавьте ==.

результат:

if(quit == true) { 

} 

= => Назначение
== => Сравнение

Или, стенографии:

if(quit) { 

} 

== true автоматически подразумевается.

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

if(!quit) { 
    // usernumber & related stuff 
} 

Дополнительно:

while(quit != True) 

должен быть

while(quit != true) 

или сокращенная:

while(!quit) { 

} 

и

if(UserNumber < smallest) 

должен быть

if(userNumber < smallest) 

Наконец:

int smallest = 9999999; 

Это безопаснее использовать

int smallest = INTEGER.MAX_VALUE; 

Одно крошечное примечание: вы никогда не устанавливая значение false в quit так будет быть постоянной петлей.

последнее замечание, я обещаю:

Этот (не компилировать)

if(userInput.equals("Q")) userInput.equals("q"); 

можно переписать в виде

if(userInput.equalsIgnoreCase("Q")); 
+0

ОК, поэтому я позаботился об этом, но теперь я получаю другая ошибка. его: достигнут конец файла во время разбора. на последней строке с фигурной скобкой, что это могло быть? – user3015774

+0

@ user3015774: можете ли вы изменить свой код, чтобы показать, что у вас есть сейчас? –

1

Попробуйте это:

import java.util.Scanner; 

public class Main { 
    public static void main(String[] args) { 
     Scanner keyboard = new Scanner(System.in); 

     int smallest = 9999999; 
     String userInput; 

     System.out.println("This program finds the smallest number" 
       + " in a series of numbers"); 
     System.out.println("When you want to exit, type Q"); 

     while (true) { 
      System.out.print("Enter a number: "); 
      userInput = keyboard.next(); 
      if (userInput.equals("Q") || userInput.equals("q")) { 
       System.exit(0); 
      } 
      smallest = Math.min(smallest, Integer.parseInt(userInput)); 
      System.out.println("The smallest number is " + smallest); 
     } 
    } 
} 

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