Например, напишите такой фрагмент кода:
Скопируйте код кода следующим образом:
интервал я;
{
интервал j=1;
я = j;
}
Если этот код существует в области определения класса, то мы знаем, что это обычный блок операторов, используемый для инициализации содержимого атрибутов класса. Он будет вызываться при создании экземпляра класса, и в нем могут выполняться некоторые методы.
Во многих случаях он будет использоваться в одноэлементном и других режимах. Добавьте перед ним статический объект для инициализации содержимого сложных классов, что позволит избежать некоторых исключений во время выполнения, вызванных последовательностью загрузки.
Но что, если этот код появится в методе?
В принципе, это вообще не имеет смысла. Раньше я думал, что это был просто формат для включения кода и ничего больше.
Сегодня я написал небольшой код, связанный с «тегами операторов»:
Скопируйте код кода следующим образом:
метка17: интервал я;
интервал j;
ThreadGroup[] arrayOfThreadGroup;
если (флаг)
сломать метку17;
вернуть 0;
Исключение «Синтаксическая ошибка в токене «:», {ожидается после этого токена» произошло в позиции «:».
То есть, когда код не может существовать в одной строке (int i должен иметь четкую позицию создания/присвоения внутри тела метода), label17 необходимо пометить блоком операторов.
Правильный формат:
Скопируйте код кода следующим образом:
label17: {
интервал я;
интервал j;
ThreadGroup[] arrayOfThreadGroup;
если (флаг)
сломать метку17;
вернуть 0;
}
или:
метка17:
интервал я;
интервал j;
ThreadGroup[] arrayOfThreadGroup;
если (флаг){
сломать метку17;
вернуть 0;}
Давайте посмотрим на неправильное использование:
Скопируйте код кода следующим образом:
метка13: интервал х = 0;
Очевидно, после метки есть однострочный блок операторов по умолчанию. Этот x нельзя использовать нигде в будущем, ошибка. Советы заключаются в следующем:
Несколько маркеров на этой строке
- x не может быть преобразован в переменную
- Синтаксическая ошибка токена "int", удалите этот токен.
Есть два правильных формата:
Скопируйте код кода следующим образом:
интервал х = 0;
метка13: х = 0;
или
label13:{ int x = 0;}
Поэтому я предположил, что предыдущее недоразумение заключалось в том, что в таких использованиях, как for(){} и if(){}, логический if() и блок операторов {} должны быть двумя независимыми синтаксисами.