answersLogoWhite

0

How do you prevent a dangling else?

Updated: 8/10/2023
User Avatar

Wiki User

12y ago

Best Answer
Answer
A "dangling else" is basically a bit of ambiguity as to how an if-then-else statement will be parsed - specifically, when the else clause should end.

A dangling else can look something like this:

void doStuff(int a) {

if(a == 10)
printf("TEN");

else
printf("NOT TEN");
a = 100;

}

The above code looks perfectly normal. If a is 10, then print "TEN" otherwise print "NOT TEN" and set a to 100.

With certain languages (C/C++ and Java included), that code would not quite work as described. The way the code is indented can make someone believe that it is doing something else.

According to the way C/C++ and Java would interpret the above code, it should look more like this:


void doStuff(int a) {

if(a == 10) {
printf("TEN");

}else {
printf("NOT TEN");

}

a = 100;

}

Which means that no matter what, a would be set to 100 at the end of the function call, which is not how the indentation made it look in the original example.

Keep in mind that both examples are identical in function if interpreted by a C/C++ or Java style compiler.

Answer
This problem arises with nested if-s:

if (cond1) if (cond2) stmt1; else stmt2;


It can be either

if (cond1) { if (cond2) stmt1; else stmt2; }


or

if (cond1) { if (cond2) stmt1; } else stmt2;


It is important to rembember that the compiler does not know which of those you meant, so it choose the first interpretation: the dangling else belongs to the inner if.

User Avatar

Wiki User

14y ago
This answer is:
User Avatar
More answers
User Avatar

Wiki User

12y ago

If you always use braces to explicitly define the scope of the if and the esle statement then the code becomes clearer to other programmers.

if (something) {

do_something;

} else {

do_something_else;

}

done;

Java and C/C++ allow short form constructs such as

if (something)

do_something;

else

do_someing_else;

but this is not always clear as in

if (something)

do_something;

else

do_something_else;

done;

Using a style checking tool like PMD allows developers to double check their code for these types of problems.

This answer is:
User Avatar

User Avatar

Wiki User

10y ago

The ambiguity that arises in a nested if statement due to more number of if then the number of else clauses is also as dangling else problem. a confusion is created with which if does the additional else clause match up.

This answer is:
User Avatar

Add your answer:

Earn +20 pts
Q: How do you prevent a dangling else?
Write your answer...
Submit
Still have questions?
magnify glass
imp
Related questions

What is dangling if else problem?

The dangling else problem occurs when an if-else construct is ambiguous, and it is unclear which if statement should be associated with the else statement. This can lead to unintended behavior in the code if not handled properly. It is recommended to use braces to explicitly define the scope of if-else blocks to avoid this issue.


What is The dangling process which hangs from the soft palate and helps prevent food from entering the pharynx prematurely?

it's a uvula


How do you use the word dangling in a sentence?

The climber was left dangling for his life on the edge of the cliff.She did not like the way the bracelet was dangling when she drove.Somehow, there is a sock dangling from the tree.


What are the disadvantages of nested if in C?

Nothing, but be careful with the dangling else's: if (cond1) if (cond2) stmt1; else stmt2; means: if (cond1) { if (cond2) stmt1; else stmt2; } not this: if (cond1) { if (cond2) stmt1; } else stmt2;


What is the antonym of dangling?

The antonym of "dangling" could be "secure" or "fixed."


What is an antonym for dangling?

The antonym for dangle is dangling


What is a sentence for the word dangling?

The man was dangling from the bridge for his life


When was Dangling Man created?

Dangling Man was created in 1944.


What is dangling gerund?

dangling gerund is a form of verb that act as noun......


What does dangling mean?

Dangling refers to a situation where a pointer in a computer program points to a memory location that has been deallocated or is no longer valid. This can lead to unpredictable behavior and crashes in a program. Dangling pointers are a common source of bugs in C and C++ programs.


Does this contain a dangling modifier After opening the door the night air rushed in?

There is A dangling sentence


What ear lobe is the dominant ear lobe attached or dangling?

Dangling earlobe is dominant.