В то время как (правда); петля бросает недоступный код, когда не в пустотеJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 В то время как (правда); петля бросает недоступный код, когда не в пустоте

Сообщение Anonymous »

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

Код: Выделить всё

while(true);
Программа замерзает в этой цикле [/b]. Если код такой: < /p>

test 1: < /strong> < /h2>

Код: Выделить всё

public class While {
public static void main(String[] args) {
System.out.println("start");
while (true);
System.out.println("end");
}
}
< /code>

  Компилятор бросает мне ошибку: < /em> < /strong> < /p>

Exception in thread "main" java.lang.Error: Unresolved compilation problem:
Unreachable code
at While.main(While.java:6)
< /code>

Я не знал, что эта ошибка существует. Но я понял, почему это брошено. Конечно,  строка 6 была недоступна [/b], вызывая проблему с компиляцией. Затем я проверил это: < /p>

 [b] test 2: < /strong> < /h2>

public class While {
public static void main(String[] args) {
System.out.println("start");
a();
b();
}
static void a() {
while(true);
}
static void b() {
System.out.println("end");
}
}
< /code>

По какой -то причине  Программа работала нормально < /strong> (консоль напечатана "Start", а затем замерзла). Компилятор не мог проверить внутри void a()
[/b] и видите, что это не доступно. Чтобы убедиться, что я попробовал: < /p>

test 3: < /strong> < /h2>

Код: Выделить всё

public class While {
public static void main(String[] args) {
System.out.println("start");
a();
System.out.println("end");
}
static void a() {
while(true);
}
}
< /code>

 тот же результат, что и тест. Strong> Вопрос [/b].  Итак, если код внутри скобок является переменной, компилятор не бросил бы исключение . Это имеет смысл, но я не думаю, что то же самое относится и к [b]voids
[/b].

Q: Итак, почему компилятор просто бросает мне ошибку в тесте 1, если < Strong>

Код: Выделить всё

void b()
(тест 2) и

Код: Выделить всё

System.out.println("end");
[/b] (тест 3) не доступен? p>

#include

using namespace std;

int main()
{
cout

Подробнее здесь: https://stackoverflow.com/questions/241 ... -in-a-void
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • JS в цикле, если предопределенная функция бросает исключение, петля останавливает итерацию [закрыто]
    Anonymous » » в форуме Javascript
    0 Ответы
    2 Просмотры
    Последнее сообщение Anonymous
  • Как обращаться к заранее определенным массивам и использовать их в пустоте?
    Anonymous » » в форуме C++
    0 Ответы
    23 Просмотры
    Последнее сообщение Anonymous
  • Мой игрок случайно падает в пустоте с поверхности
    Anonymous » » в форуме C#
    0 Ответы
    10 Просмотры
    Последнее сообщение Anonymous
  • Мой игрок случайно падает в пустоте с поверхности
    Anonymous » » в форуме C#
    0 Ответы
    13 Просмотры
    Последнее сообщение Anonymous
  • После миграции PHP Artisan: незаконное офсетное тип в Esset или пустоте
    Anonymous » » в форуме Php
    0 Ответы
    5 Просмотры
    Последнее сообщение Anonymous

Вернуться в «JAVA»