2013-02-11 5 views
0

Я написал это в java и продолжаю получать другое без ошибки. Я перебирал его снова и снова и не могу найти ошибку. Действительно ли это недостаток, если или есть проблема с остальной частью программы?java else without if error

public class Password { 

    public static void main(String[] args) { 

     //int Counter = 0; 

     String[] UserName = { 
      "William Whitcomb" , "Pamela Healy" , 
      "Dennis Clark" , "Troy Bingham" , 
      "Bill Mauler" 
     }; 
     String[] Password = { 
      "WWhit0523" , "PHeal0854" , 
      "DClar1053" , "TBing1272" , 
      "BMaul0968" 
     }; 
      String EnterName = JOptionPane.showInputDialog ("Enter a valid user name.",  //Name pane window 
      "User Name"); 
      String EnterPassword = JOptionPane.showInputDialog ("Enter a valid password.",  //Age pane window 
      "Password"); 
      for (int Counter = 0; Counter < UserName.length;){ 
      Validate(); 
      if (Validate() = true) { 
       JOptionPane.showMessageDialog (null, "You entered the User Name of " + UserName[Counter] + 
       "and the password of " + Password[Counter]); //Results pane 
       } 
      } //End of for 
     } //End of Method 


     Boolean Validate(String EnterName , String EnterPassword){ 
       Boolean Condition = false; 

        if (EnterName.equals(UserName[Counter])) { 
         if (EnterPassword.equals(Password[Counter])) { 
         Condition = true; 
         return //Condition; 
         } else { 
          JOptionPane.showMessageDialog (null, "You have entered an invalid password."); 
          Counter += 1; 
           } //End of Inner Else 

        } else { 
         JOptionPane.showMessageDialog (null, "You have entered an invalid user name."); 
         Counter += 1; 
         } //End of Outer Else 
       } //End of outer if 
      } //End of Method 
    } //End of Class 
+7

Пожалуйста, используйте IDE. У вас есть несколько основных проблем в коде, что хороший инструмент помог бы вам решить. – Perception

+0

@ Виллиам Уиткомб, см. Мой ответ –

ответ

2

По крайней мере одна ошибка я вижу: Validate() = true должен быть Validate() == true. Вместо сравнения вы назначаете.

Даже короче, if(Validate()) будет работать.

Но сама ошибка, скорее всего, вызвана отсутствием точки с запятой после возвращения.

+0

Большое спасибо. Это помогло.Теперь единственной ошибкой, которую я получаю, является ошибка: класс, интерфейс или ожидаемое перечисление} // Конец класса – Will1973

+0

Вы отсутствуете} или имеете дополнительную {где-то, просто дважды проверьте свой код, это должно быть довольно очевидно. – sashkello

4

Я думаю, что проблема в этой строке:

return //Condition; 

Вы закомментировали точку с запятой случайно, вызвав неродственную синтаксическую ошибку вниз по дороге.

В некоторой части примечания, когда ваша функция возвращает boolean, вы не должны сравнивать результат с true или false. Просто напишите if (Validate())... или if (!Validate())....

+1

Это кажется правильным ответом - это заканчивается тем, что «если» и доходит до «еще». – sashkello

0

Я видел один дополнительный} в методе проверки. Я имею в виду еще один} в методе validate(). пожалуйста, внимательно ознакомьтесь с вашим кодом. Удалите его. а также ; отсутствует в операторе return. Метод должен быть

Boolean Validate(String EnterName , String EnterPassword){ 
      Boolean Condition = false; 
       if (EnterName.equals(UserName[Counter])) 
       { 
        if (EnterPassword.equals(Password[Counter])) 
        { 
        Condition = true; 
        return; 
        } 
       else 
        { 
         JOptionPane.showMessageDialog (null, "You have entered an invalid password."); 
         Counter += 1; 
        } //End of Inner Else 

       } // if closed here 
       else { 
        JOptionPane.showMessageDialog (null, "You have entered an invalid user name."); 
        Counter += 1; 
        } //End of Outer Else 
     } //End of Method 
1

Вам не нужно

} //End of outer if 

, так как вы уже закрыли его перед else. Удалите эту строку.

Взгляните на отформатированную версию кода

Boolean Validate(String EnterName, String EnterPassword) { 
    Boolean Condition = false; 

    if (EnterName.equals(UserName[Counter])) { 
     if (EnterPassword.equals(Password[Counter])) { 
      Condition = true; 
      return Condition; 
     } else { 
      JOptionPane.showMessageDialog(null, 
        "You have entered an invalid password."); 
      Counter += 1; 
     } // End of Inner Else 

    } else { 
     JOptionPane.showMessageDialog(null, 
       "You have entered an invalid user name."); 
     Counter += 1; 
    } // End of Outer Else 
--> } //End of outer if     <-- You don't want this line 
} // End of Method 
+1

+1 для части «форматированной версии». Хорошее форматирование действительно делает код гораздо более удобным для чтения. – yshavit

0

Heres списка вещей, которые нужны изменить:

  • У вас есть дополнительная скобка в самом конце вашего класса. Убери это.
  • Вашего Validate метода с использованием переменных UserName, Counter и Password, которые никогда не объявлены в любом месте
  • Вашего метод Validate имеет return заявления, не заканчивающаяся точку с запятой
  • Вашего основного метода, в течение цикла, оба звонка на Validate сделаны без аргументов (вам нужно два из них)
  • Ваш основной метод: ваш первый вызов Validate фактически не работает (вы ничего не делаете с возвращаемым значением). Убери это.

Все эти проблемы были бы выделены наполовину достойной IDE. Я бы очень рекомендовал его использовать.

+0

К сожалению, у моего инструктора есть текстовая панель, которая отстойная. Что было бы хорошей IDE? – Will1973

+0

Имя пользователя, счетчик и пароль I Предположим, что они переданы из основного метода.Как вы передаете эти значения методу Validate. – Will1973

+0

Существует несколько хороших. В нескольких учебных заведениях используется BlueJ - это в основном стартовая среда IDE. Некоторые из более «обычных» - Eclipse, NetBeans, IntelliJ. – Perception