Java delete unreachable statement

Недостижимый оператор в Java

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

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

Такая ошибка может возникнуть из-за бесконечного цикла или размещения кода после оператора return или break среди нескольких других причин.

Давайте рассмотрим несколько примеров недостижимых утверждений.

1. Недоступно во время цикла

Если условие цикла while таково, что оно никогда не является истинным, то код внутри цикла никогда не будет выполняться. Это делает код внутри цикла while недоступным.

package com.journaldev.java; public class Main < public static void main(String[] args) < while(3>5) < System.out.println("Hello"); >> >

Среда IDE указывает на ошибку при написании кода. Это довольно “разумно”.

2. Код после бесконечного цикла

Фрагмент кода сразу после бесконечного цикла никогда не будет выполнен. На самом деле, весь код после бесконечного цикла никогда не будет выполнен. Это должно побудить вас обратить внимание при написании конечного условия цикла.

package com.journaldev.java; public class Main < public static void main(String[] args) < while(true)< System.out.println("Hello"); >int a=1; > >

3. Код после перерыва или продолжения инструкции

Оператор Break позволяет нам выйти из цикла. Оператор Continue позволяет нам пропустить текущую итерацию и перейти к следующей итерации, размещая код после того, как любой из двух операторов сделает оператор недоступным.

package com.journaldev.java; public class Main < public static void main(String[] args) < for(int i=0;i<5;i++)< if(i==2)< break; System.out.println("Hello"); >> > >

Как исправить ошибку недостижимого оператора?

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

Блок-схемы необходимы для понимания потока любого кода. Вы можете попробовать нарисовать блок-схему для проблемы, которую вы пытаетесь решить. Затем вы можете сопоставить свой код с блок-схемой или написать код с нуля, исходя из этого нового понимания проблемы.

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

Если вы все еще не можете понять это, вы всегда можете прокомментировать этот пост, и мы поможем вам разобраться в этом. Вот для чего мы здесь 🙂

Читайте ещё по теме:

Источник

How to Fix Unreachable Statement Errors in Java

How to Fix Unreachable Statement Errors in Java

Introduction to Statements and Compile-time Errors in Java

Statements are foundational language constructs that have an effect on the execution of a program. Statements are similar to sentences in natural languages. In Java, there are three main types of statements, namely expression statements, declaration statements, and control-flow statements [1].

As a compiled programming language, Java has an inbuilt mechanism for preventing many source code errors from winding up in executable programs and surfacing in production environments [2]. One such error, related to statements, is the unreachable statement error.

What Causes the Unreachable Statement Error?

By performing semantic data flow analysis, the Java compiler checks that every statement is reachable and makes sure that there exists an execution path from the beginning of a constructor, method, instance initializer, or static initializer that contains the statement, to the statement itself. If it finds a statement for which there is no such path, the compiler raises the unreachable statement error [3].

Unreachable Statement Error Examples

After a branching control-flow statement

The break , continue , and return branching statements allow the flow of execution to jump to a different part of the program. The break statement allows breaking out of a loop, the continue statement skips the current iteration of a loop, and the return statement exits a method and returns the execution flow to where the method was invoked [4]. Any statement that follows immediately after a branching statement is, by default, unreachable.

After break

When the code in Fig. 1(a) is compiled, line 12 raises an unreachable statement error because the break statement exits the for loop and the successive statement cannot be executed. To address this issue, the control flow needs to be restructured and the unreachable statement removed, or moved outside the enclosing block, as shown in Fig. 1(b).

package rollbar; public class UnreachableStatementBreak < public static void main(String. args) < int[] arrayOfInts = ; int searchFor = 12; for (int integer : arrayOfInts) < if (integer == searchFor) < break; System.out.println("Found " + searchFor); >> > >
UnreachableStatementBreak.java:12: error: unreachable statement System.out.println("Found " + searchFor); ^
package rollbar; public class UnreachableStatementBreak < public static void main(String. args) < int[] arrayOfInts = ; int searchFor = 12; boolean found = false; for (int integer : arrayOfInts) < if (integer == searchFor) < found = true; break; >> if (found) < System.out.println("Found " + searchFor); >> >

Rollbar in action

Источник

Solve the Unreachable Statement Error in Java

Solve the Unreachable Statement Error in Java

  1. Cause of the unreachable statement Error in Java
  2. Solve the unreachable statement Error in Java

This tutorial demonstrates the unreachable statement error in Java.

Cause of the unreachable statement Error in Java

The unreachable statement error occurs when we try to put a statement after branching control flow statements. The branching statements include break , continue , and return which are used to jump to a different part of code.

These statements are usually included in the loop to break it, skip an iteration, or return a value. When we put a code statement immediately after these branching statements, it will throw the compilation error unreachable statement .

Here are examples of the error unreachable statement using the break , continue , and return statements:

package delftstack;  public class Unreachable_Statement   public static void main(String. args)   int[] DemoArray = 350, 780, 300, 500, 120, 1024, 1350>;   int DemoNumber = 1024;   for (int INTEGER : DemoArray)   if (INTEGER == DemoNumber)   break;  System.out.println("The number is: " + DemoNumber);  >  >  > > 
Exception in thread "main" java.lang.Error: Unresolved compilation problem:  Unreachable code   at delftstack.Unreachable_Statement.main(Unreachable_Statement.java:12) 
package delftstack;  public class Unreachable_Statement   public static void main(String. args)   int[] DemoArray = 350, 780, 300, 500, 120, 1024, 1350>;   int DemoNumber = 1024;   for (int INTEGER : DemoArray)   if (INTEGER == DemoNumber)   continue;  System.out.println("The number is: " + DemoNumber);  >  >  > > 

The output for this will also be the same:

Exception in thread "main" java.lang.Error: Unresolved compilation problem:  Unreachable code   at delftstack.Unreachable_Statement.main(Unreachable_Statement.java:12) 
package delftstack;  public class Unreachable_Statement   public static void main(String. args)   int[] DemoArray = 350, 780, 300, 500, 120, 1024, 1350>;   int DemoNumber = 1024;   for (int INTEGER : DemoArray)   if (INTEGER == DemoNumber)   return;  System.out.println("The number is: " + DemoNumber);  >  >  > > 
Exception in thread "main" java.lang.Error: Unresolved compilation problem:  Unreachable code   at delftstack.Unreachable_Statement.main(Unreachable_Statement.java:12) 

Solve the unreachable statement Error in Java

The solution is to avoid writing any code immediately after the branching statements. See the code solution for the error raised using the break statement:

package delftstack;  public class Unreachable_Statement   public static void main(String. args)   int[] DemoArray = 350, 780, 300, 500, 120, 1024, 1350>;   int DemoNumber = 500;  boolean FoundNumber = false;  for (int INTEGER : DemoArray)   if (INTEGER == DemoNumber)   FoundNumber = true;  break;  >  >  if (FoundNumber)   System.out.println("The number is: " + DemoNumber);  >  > > 

We have put the statement in another if condition. The code will now work properly.

Similarly, we can create a solution for continue and return statements. The rule is not to put any code immediately after the branching statements.

Sheeraz is a Doctorate fellow in Computer Science at Northwestern Polytechnical University, Xian, China. He has 7 years of Software Development experience in AI, Web, Database, and Desktop technologies. He writes tutorials in Java, PHP, Python, GoLang, R, etc., to help beginners learn the field of Computer Science.

Related Article — Java Error

Источник

Resolving Java unreachable statement

The java unreachable statement is a compilation error thrown when the compiler detects a code that was not executed as part of the program. When you reach this state, it means that your program would not be executed anymore, and hence this piece of code is unnecessary and should be removed.

There are a couple of reasons that might result to this issue. Let’s discuss some of the possible causes and how to solve this:

Return Statement

Function execution ends when a return statement is called. Any statement within the function that comes after the return statement will not be executed. Thus, writing your code after this return statement results in an unreachable java statement.
Example:

Main.java:16: error: unreachable statement System.out.println("I will not be printed"); ^ 1 error 

In the above example, we have a print statement after the return statement. Using the return statement, we tell the control to go back to the caller explicitly; hence, any code after this will be considered a dead code as it will never be executed.

To solve this error, double-check the flow of your code and make sure the return statement is always the last line of code in a function.
Example:

The java unreachable statement I will not be printed

Infinite loop

An infinite loop is an endless loop. Its code keeps reiterating the loop location hence any code written after the loop will never be executed.
Example:

Main.java:10: error: unreachable statement System.out.print("I'm outside the infinite loop"); ^ 1 error

The infinite loop code executes the loop forever. This may consume the CPU, preventing other programs from being executed. As programmers, we block or sleep the loop by adding the break statement to let other applications run. Any code after the break statement will never be executed. To solve this, make sure no code is written after sleeping or blocking the infinite loop.

Any statement after continue

The continue statement enforces the execution of a loop in a code. Any statement after the continue statement will not be executed because the execution jumps to the top of the loop to continue with the execution of the previous code.
Example:

Removing the print system outside the function will make the obsolete code execute.

public class Main < public static void main(String[] args) < for (int j = 0; j < 5; j++) < System.out.println(j); continue; >System.out.println("Java unreachable statement"); > >
0 1 2 3 4 Java unreachable statement

Any statement after break

Break statements are used in terminating a loop. Any code after the break statement means the code will not be compiled since the program’s running was terminated by the break. This will result in the java unreachable statement.

Источник

Читайте также:  Фреймы
Оцените статью