Java MCQs on control statements of Java Programming Language.
1. Which of these selection statements test only for equality? Answer: b 2. Which of these are selection statements in Java? Answer: a 3. Which of the following loops will execute the body of loop even when condition controlling the loop is initially false? Answer: a 4. Which of these jump statements can skip processing the remainder of the code in its body for a particular iteration? Answer: d 5. Which of this statement is incorrect? Answer: b 6. What will be the output of the following Java program? a) 1 7. What will be the output of the following Java program? a) 5 8. What will be the output of the following Java program? a) 1 3 5 7 9. What will be the output of the following Java program? a) Hello Answer: d 10. What will be the output of the following Java program? a) 5 10
a) if
b) switch
c) if & switch
d) none of the mentioned
Clarification: Switch statements checks for equality between the controlling variable and its constant cases.
a) if()
b) for()
c) continue
d) break
Clarification: Continue and break are jump statements, and for is a looping statement.
a) do-while
b) while
c) for
d) none of the mentioned
Clarification: None.
a) break
b) return
c) exit
d) continue
Clarification: None.
a) switch statement is more efficient than a set of nested ifs
b) two case constants in the same switch can have identical values
c) switch statement can only test for equality, whereas if statement can evaluate any type of boolean expression
d) it is possible to create a nested switch statements
Clarification: No two case constants in the same switch can have identical values.
class selection_statements
{
public static void main(String args[])
{
int var1 = 5;
int var2 = 6;
if ((var2 = 1) == var1)
System.out.print(var2);
else
System.out.print(++var2);
}
}
b) 2
c) 3
d) 4
Clarification: var2 is initialised to 1. The conditional statement returns false and the else part gets executed.
output:
$ javac selection_statements.java
$ java selection_statements
2
class comma_operator
{
public static void main(String args[])
{
int sum = 0;
for (int i = 0, j = 0; i < 5 & j < 5; ++i, j = i + 1)
sum += i;
System.out.println(sum);
}
}
b) 6
c) 14
d) compilation error
Clarification: Using comma operator, we can include more than one statement in the initialization and iteration portion of the for loop. Therefore both ++i and j = i + 1 is executed i gets the value – 0,1,2,3,4 & j gets the values -0,1,2,3,4,5.
output:
$ javac comma_operator.java
$ java comma_operator
6
class jump_statments
{
public static void main(String args[])
{
int x = 2;
int y = 0;
for ( ; y < 10; ++y)
{
if (y % x == 0)
continue;
else if (y == 8)
break;
else
System.out.print(y + " ");
}
}
}
b) 2 4 6 8
c) 1 3 5 7 9
d) 1 2 3 4 5 6 7 8 9
Clarification: Whenever y is divisible by x remainder body of loop is skipped by continue statement, therefore if condition y == 8 is never true as when y is 8, remainder body of loop is skipped by continue statements of first if. Control comes to print statement only in cases when y is odd.
output:
$ javac jump_statments.java
$ java jump_statments
1 3 5 7 9
class Output
{
public static void main(String args[])
{
final int a=10,b=20;
while(a<b)
{
System.out.println("Hello");
}
System.out.println("World");
}
}
b) run time error
c) Hello world
d) compile time error
Clarification: Every final variable is compile time constant.
class Output
{
public static void main(String args[])
{
int a = 5;
int b = 10;
first:
{
second:
{
third:
{
if (a == b >> 1)
break second;
}
System.out.println(a);
}
System.out.println(b);
}
}
}
b) 10 5
c) 5
d) 10
Clarification: b >> 1 in if returns 5 which is equal to a i:e 5, therefore body of if is executed and block second is exited. Control goes to end of the block second executing the last print statement, printing 10.
output:
$ javac Output.java
$ java Output
10
