Illegal start of expression java что это

Illegal start of expression java что это

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

Я проверил здесь полдюжины сообщений с той же ошибкой, но я не мог понять, что происходит не так.

Методы могут объявлять только локальные переменные. Вот почему компилятор сообщает об ошибке при попытке объявить ее общедоступной.

В случае локальных переменных вы не можете использовать какой-либо аксессор (открытый, защищенный или закрытый).

Вы также должны отслеживать, что означает статическое ключевое слово. В методе checkYourself вы используете объявление locations .

Статическое ключевое слово отличается элементами, доступными при создании объекта. Там для этого нет части объекта.

Удалите ключевое слово public из int[] locations=<1,2,3>; . Модификатор доступа не допускается внутри метода, так как его доступность определяется его областью методов.

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

Возникает ошибка при создании: (9:9)illegal start of expression.

Только учусь, первую неделю. В чем моя ошибка?

3 ответа 3

  1. Как и сказали main внутри main — нельзя писать метод внутри метода
  2. Не понятно вообще это вам нужно(вторая строка с main) — просто удалите
  3. Даже учитывая что вы неправильно написали второй раз main — тут вы еще не закрыли скобку, всегда открывающиеся скобки нужно закрывать.

В методе Goperation() — scc.hasNext() — возращает boolean — правда/ не правда, т.е. вы не записываете чар, а проверяете наличие. "Существует и метод hasNext() , проверяющий остались ли в потоке ввода какие-то символы." http://kostin.ws/java/java-input-stream.html

  1. Если вы используете char — то нужно указывать » , вместо "" — они используются для String .
Читайте также:  1С документооборот легкая и встроенная почта

(9:9)illegal start of expression. — говорит что это ошибка компиляции. Структура программы на Java имеет определенный синтаксис. Этот синтаксис определяет правила использования элементов языка в вашей программе.

Изначально вас наверно учили, как создавать программу на языке Java, но наверно недоучили, потому что вы не только делаете ошибки кодирования, но и неправильно пишете код. Это разные вещи, которые вам нужно понять прежде чем продолжать кодировать на Java.

Java это очень сложный язык, и вы когда-нибудь это поймете посмотрев на описание синтаксиа. Конечно читать сразу JLS будет сложно, поэтому новичкам рекомендуют начинить с пониманием базовых концепций. Потом уже переходить к кодированию.

The "illegal start of expression" error is a compile time error when the compiler finds an inappropriate statement in the code. The java compiler, javac , compiles your source code from top to bottom, left to right and when it sees something inappropriate at the start of an expression, it throws "illegal start of expression" error. The most common reason of this is a missing semi-colon. You might know that every statement in Java ends with a semicolon, but if you forget one, you won’t get an error that there is a missing semi-colon at the end of statement because the compiler doesn’t know the end. When compiler checks the next statement it sees illegal start because an earlier statement was not terminated. The bad part is that you can get tens of "illegal start of expression" error by just omitting a single semi-colon or missing braces, as shown in the following example.

If you compile this program you will be greeted with several "illegal start of expression" error as shown below:

Читайте также:  Avito как изменить номер телефона

$ javac Main.java
Main.java:7: error: illegal start of expression
public static int count() <
^
Main.java:7: error: illegal start of expression
public static int count() <
^
Main.java:7: error: ‘;’ expected
public static int count() <
^
Main.java:7: error: ‘;’ expected
public static int count() <
^
Main.java:11: error: reached end of file while parsing
>
^
5 errors

And the only problem is a missing braces in main method, as soon as you add that missing closing curly brace in main method the code will work fine and all these error will go away, as shown below:

The error message is very interesting, if you look at the first one, you will find that error is in line 7 and compiler complaing about public keyword but actual problem was in line 5 where a closing brace is missing. From compiler’s view, public should not come there becase its an inval >main() is still not closed, so compiler think public keyword is part of the main() method.

Though, when you compile the same program in Eclipse, you get different error because it’s compiler is slightly differnet than javac but the error message is more helpful as you can see below:

Exception in thread "main" java.lang.Error: Unresolved compilation problem:
Syntax error, insert ">" to complete MethodBody

In short, the "illegal start of expression" error means compiler find something inappropriate, against the rules of Java programming but the error message is not very helpful. For "illegal start of expression" errors, try looking at the lines preceding the error for a missing ‘)’ or ‘>’ or missing semicolon. Also remember, a single syntax error somewhere can cause multiple "illegal start of expression" error. Once you fix the root cause, all error will go away. Which means always recompile once you fix an error, don’t try to make multiple changes without compilation.

Ссылка на основную публикацию
Adblock
detector