Java Reference
In-Depth Information
with a one-liner. We can do that when we assign different values to the same variable based
on the validity of a condition. Recall our arithmetic game example.
1
import
java . util .
∗
;
2
public class
Arithmetic
{
3
public static void
main(String [] args)
{
4
int
x=(
int
)
(Math . random ( )
10) ;
∗
5
int
y=(
int
)
(Math . random ( )
10) ;
∗
6
Scanner keyboard =
new
Scanner(System. in) ;
7
System . out . p r i n t ( x +
"*"
+y+
"="
);
8
int
z = keyboard . nextInt () ;
9
if
(z == x
∗
y)
{
10
System . out . p r i n t l n (
"Congratulations!"
);
11
}
else
{
12
System . out . p r i n t l n (
"You need more practice"
);
13
}
14
}
15
}
We will rewrite the code to use the new construct. We will create a variable
output
of
type
String
. The value of the output will depend on whether the user guessed the correct
result. Now Lines 9-13 can be rewritten as follows.
String output;
if
(z == x
∗
y)
{
output =
"Congratulations!"
;
}
else
{
output =
"You need more practice"
;
System. out . println (output) ;
Now, we can use the “?:” constructor to rewrite the code as follows.
String output;
output = (z == x
∗
y) ?
"Congratulations!"
:
"You need more practice"
;
System. out . println (output) ;
The general syntax of the conditional operator is
x = (condition)? value1 :
value2
.Ifthe
condition
is true, then
x
becomes equal to
value1
. Otherwise,
x
is
assigned the value of
value2
.
The rewritten game follows.
import
java . util .
∗
;
public class
Arithmetic
{
public static void
main(String [] args)
{
int
x=(
int
) (Math . random ( )
∗
10) ;
int
y=(
int
) (Math . random ( )
∗
10) ;
Scanner keyboard =
new
Scanner(System. in) ;
System. out . print (x +
"*"
+y+
"="
);
int
z = keyboard . nextInt () ;
String output;
output = (z == x
∗
y) ?
"Congratulations!"
:
"You need more
practice"
;
System. out . println (output) ;
}