Java Programming - Flow Control - Discussion
Discussion Forum : Flow Control - Finding the output (Q.No. 7)
7.
What will be the output of the program?
public class If1
{
static boolean b;
public static void main(String [] args)
{
short hand = 42;
if ( hand < 50 && !b ) /* Line 7 */
hand++;
if ( hand > 50 ); /* Line 9 */
else if ( hand > 40 )
{
hand += 7;
hand++;
}
else
--hand;
System.out.println(hand);
}
}
Answer: Option
Explanation:
In Java, boolean instance variables are initialized to false, so the if test on line 7 is true and hand is incremented. Line 9 is legal syntax, a do nothing statement. The else-if is true so hand has 7 added to it and is then incremented.
Discussion:
13 comments Page 1 of 2.
Ankur Varshney said:
1 decade ago
if ( hand > 50 );
This statement is not legal .so according to me this is error
This statement is not legal .so according to me this is error
Sonu said:
1 decade ago
How line 7 can be true with one '&' operator? Can somebody explain this.
Sangeetha said:
1 decade ago
By default is boolean instance variable are initialized to false?
Sonam said:
1 decade ago
The 'if' statement on line 7 will return true hence hand will be incremented by 1,so its value will be 43.Then,if statement on line 9 won't be executed because that condition will be false so 'else if' will execute so value of hand will be 43+7+1=51.
So,answer will be 51.
So,answer will be 51.
(1)
Cloud Nine said:
1 decade ago
@Sonu, That is the unary AND(^) operator.
A B (A^B)
0 0 0
0 1 0
1 0 0
1 1 1
Where, 0=false, 1=true.
A B (A^B)
0 0 0
0 1 0
1 0 0
1 1 1
Where, 0=false, 1=true.
Sravan said:
1 decade ago
In line 9 as it is a legal statement why it would go for else if?
Kaushik Mitra said:
1 decade ago
@Sravan, it is because flow goes to 'else if' part if the condition in 'if' statement is not satisfied.
Bhosale suman said:
1 decade ago
!b return true.
50&&!b return 1 = true.
If (42> 50&&!b) return false.
How line 7 can be true?
50&&!b return 1 = true.
If (42> 50&&!b) return false.
How line 7 can be true?
Ranga said:
1 decade ago
What is the correct answer?
Srinivas said:
9 years ago
!b true because in place of
if (42>50&&!b) return true.
It means !b before ! default is False that's why that is true?
if (42>50&&!b) return true.
It means !b before ! default is False that's why that is true?
Post your comments here:
Quick links
Quantitative Aptitude
Verbal (English)
Reasoning
Programming
Interview
Placement Papers