Страницы

Поиск по вопросам

понедельник, 8 апреля 2019 г.

Почему код выполняется с “чужеродной” строкой?

Есть код
import java.util.*; import java.lang.*; import java.io.*;
/* Name of the class has to be "Main" only if the class is public. */ class Ideone {
static void example(){
https://ru.stackoverflow.com/questions
System.out.println("Hellolo!"); }
public static void main (String[] args) throws java.lang.Exception { example(); } }
Почему вроде как чужеродная строка
https://ru.stackoverflow.com/questions
внутри метода не мешает выполнению программы?
Заметил это в Android Studio. IDE выделяет только https с подсказкой
Unused label 'https' less... (Ctrl+F1) Reports unused code labels.
Приложение компилируется и запускается
String example(){
https://ru.stackoverflow.com/questions
return "Hello!"; }
если из onCreate вызвать
if(DEBUG) Log.i("TAG", "example() - " + example() );
На выходе
I/TAG: example() - Hello!
В следующем виде IDE уже ругается и подчеркивает всю строку
void example(){
https://ru.stackoverflow.com/questions
}
Подсказка - label without statement
Примечание: чужеродная значит ни переменная, ни выражение ... (в моем скудном представлении)


Ответ

Потому что, с точки зрения компилятора вы установили метку (точку безусловного перехода с синтаксисом label:) с именем https за которой следует комментарий (//).
Во втором случае нет кода, куда бы ссылалась эта метка

Комментариев нет:

Отправить комментарий