Chapter 3 – Controlling the Flow, Converting Types, and Handling Exceptions
What happens when you divide an
int
value by 0?A
DivideByZeroException
is thrown when dividing an integer or decimal.What happens when you divide a
double
value by0
?The
double
contains a special value ofInfinity
. Instances of floating-point numbers can have special values:NaN
(not a number),PositiveInfinity
, andNegativeInfinity
.What happens when you overflow an
int
value that is set to a value beyond its range?It will loop unless you wrap the statement in a
checked
block in which case anOverflowException
will be thrown.What is the difference between
x = y++;
andx = ++y;
?In
x = y++;
,y
will be assigned tox
and theny
will be incremented, and inx = ++y;
,y
will be incremented and then the result will be assigned tox
.What is the difference between
break
,continue
, andreturn
when used inside a loop statement?The
break
statement will end the whole loop and continue executing after the loop, thecontinue
statement will end the current iteration of the loop and continue executing at the start of the loop block for the next iteration, and thereturn
statement will end the current method call and continue executing after the method call.What are the three parts of a
for
statement and which of them are required?The three parts of a
for
statement are the initializer, condition, and incrementer. The condition is required to be an expression that returnstrue
orfalse
, but the other two are optional.What is the difference between the
=
and==
operators?The
=
operator is the assignment operator for assigning values to variables, and the==
operator is the equality check operator that returnstrue
orfalse
.
Exercise 3.2
What will happen if this code executes?
int max = 500; for (byte i = 0; i < max; i++) { WriteLine(i); }
The code will loop nonstop because the value of i
can only be between 0
and 255
, so once it gets incremented beyond 255
, it goes back to 0
and therefore will always be less than max
(500
).
To prevent it from looping nonstop, you can add a checked statement around the code. This would cause an exception to be thrown after 255
, like this:
254 255 System.OverflowException says Arithmetic operation resulted in an overflow.