Java Programming - Flow Control - Discussion
Discussion Forum : Flow Control - Finding the output (Q.No. 5)
5.
What will be the output of the program?
public class If2
{
static boolean b1, b2;
public static void main(String [] args)
{
int x = 0;
if ( !b1 ) /* Line 7 */
{
if ( !b2 ) /* Line 9 */
{
b1 = true;
x++;
if ( 5 > 6 )
{
x++;
}
if ( !b1 )
x = x + 10;
else if ( b2 = true ) /* Line 19 */
x = x + 100;
else if ( b1 | b2 ) /* Line 21 */
x = x + 1000;
}
}
System.out.println(x);
}
}
Answer: Option
Explanation:
As instance variables, b1 and b2 are initialized to false. The if tests on lines 7 and 9 are successful so b1 is set to true and x is incremented. The next if test to succeed is on line 19 (note that the code is not testing to see if b2 is true, it is setting b2 to be true). Since line 19 was successful, subsequent else-if's (line 21) will be skipped.
Discussion:
24 comments Page 1 of 3.
Isha said:
1 decade ago
What is the meaning of operator | ? please do reply.
Chibhulpandey said:
1 decade ago
I think it is OR operator!! but actly or operator should be represented as"||". So please modify it in program.
Sam said:
1 decade ago
int z =5;
if(++z > 5 || ++z >6)
z++;
output : z=7
________________________
int z =5;
if(++z > 5 | ++z >6)
z++;
output : z=8
if(++z > 5 || ++z >6)
z++;
output : z=7
________________________
int z =5;
if(++z > 5 | ++z >6)
z++;
output : z=8
Saad said:
1 decade ago
If(b==true) is equivalent to if(b).
But if(b=true) first assigns true value to b and then check the condition.
But if(b=true) first assigns true value to b and then check the condition.
Rakesh Kumar said:
1 decade ago
How it became possible for this code to run.
Because there must be an else statement after if{} else if{}.
Please some one do reply if I am wrong.
Because there must be an else statement after if{} else if{}.
Please some one do reply if I am wrong.
Rakesh said:
1 decade ago
|| is called as short circuit OR operator, it will check its 2nd operand only if the first operand is false and if the first operand is true then it will not care about whether 2nd operand is true or false.
| is simple OR operator it will check its both the operands always.
| is simple OR operator it will check its both the operands always.
Sunil said:
1 decade ago
How come b2 become true ?
Vien said:
1 decade ago
Why? x must be 1001, why 101?
Kunal said:
1 decade ago
Note the difference between b2= true and b==true. The first one assigns b2 to be true and evaluates as true, the second one compares b2 with true.
As the condition is true@ if(b2=true) it will executes the statement x=x+100; and skip the next statement.
As the condition is true@ if(b2=true) it will executes the statement x=x+100; and skip the next statement.
Boopathi said:
1 decade ago
Why not consider this part? Please explain.
if(5>6)
{
x++;
}
if(!b)
{
x=x+10;
}
if(5>6)
{
x++;
}
if(!b)
{
x=x+10;
}
Post your comments here:
Quick links
Quantitative Aptitude
Verbal (English)
Reasoning
Programming
Interview
Placement Papers