Part 1

advertisement
Chapter 2: Elementary Programming
Shahriar Hossain
1
Quiz solution
 What
will be the value of the variable x
after performing the following Java
statement:
int x = 7 − 10 % 2 / 3;
Solution: 7
Consecutive multiplicative
operators will be evaluated from
left to right in the expression since
they have the same priority.
2
3
Quiz solution
 What
will be printed as a result of the
following piece of code? explain step-bystep:
double x = 3;
double y = x + 1;
x = y − 2;
System.out.println(x);
System.out.println(y);
Solution:
2.0
4.0
4
Objectives
 To
use augmented assignment operators
 To distinguish between postincrement and
preincrement and between postdecrement and
predecrement
 To cast the value of one type to another type
 To represent characters using the char type
 To represent a string using the String type
 To
become familiar with Java programming style
and documentation
5
Declaring Variables
int x;
// Declare x to be an
// integer variable;
double radius; // Declare radius to
// be a double variable;
char a;
// Declare a to be a
// character variable;
6
Assignment Statements
x = 1;
// Assign 1 to x;
radius = 1.0;
// Assign 1.0 to radius;
a = 'A';
// Assign 'A' to a;
7
Numeric Operators
Name
Meaning
Example
Result
+
Addition
34 + 1
35
-
Subtraction
34.0 – 0.1
33.9
*
Multiplication
300 * 30
9000
/
Division
1.0 / 2.0
0.5
%
Remainder
20 % 3
2
8
Augmented Assignment Operators
The operators +, -, *, /, and % can be combined with the
assignment operator to form augmented operators.
Operator Example
Equivalent
+=
i += 8
i = i + 8
-=
f -= 8.0
f = f - 8.0
*=
i *= 8
i = i * 8
/=
i /= 8
i = i / 8
%=
i %= 8
i = i % 8
9
Caution
 There
is no spaces in the augmented
assignment operators
+ = is wrong
+= is correct
10
Increment and
Decrement Operators
Operator
++var
Name
preincrement
var++
postincrement
--var
predecrement
var--
postdecrement
Description
The expression (++var) increments var by 1 and evaluates
to the new value in var after the increment.
The expression (var++) evaluates to the original value
in var and increments var by 1.
The expression (--var) decrements var by 1 and evaluates
to the new value in var after the decrement.
The expression (var--) evaluates to the original value
in var and decrements var by 1.
11
Increment and
Decrement Operators, cont.
int i = 10;
int newNum = 10 * i++;
Same effect as
int i = 10;
int newNum = 10 * (++i);
int newNum = 10 * i;
i = i + 1;
Same effect as
i = i + 1;
int newNum = 10 * i;
12
Increment and
Decrement Operators, cont.
Using increment and decrement operators makes
expressions short, but it also makes them complex and
difficult to read. Avoid using these operators in expressions
that modify multiple variables, or the same variable for
multiple times such as this: int k = ++i + i.
13
Increment and
Decrement Operators, cont.
What is the output of the following code segment?
int i=2;
int k=++i+i;
System.out.println(i);
System.out.println(k);
3
6
14
Increment and
Decrement Operators, cont.
What is the output of the following code segment?
int i=2;
int k=i+++i; // equivalent to
System.out.println(i);
System.out.println(k);
int k=(i++)+i;
3
5
15
Numeric Type Conversion
Consider the following statements:
byte i = 100;
long k = i * 3 + 4;
double d = i * 3.1 + k / 2;
16
Conversion Rules
When performing a binary operation involving two
operands of different types, Java automatically
converts the operand based on the following rules:
1. If one of the operands is double, the other is
converted into double.
2. Otherwise, if one of the operands is float, the other is
converted into float.
3. Otherwise, if one of the operands is long, the other is
converted into long.
4. Otherwise, both operands are converted into int.
17
Type Casting
Implicit casting
double d = 3; (type widening)
Explicit casting
int i = (int)3.0; (type narrowing)
int i = (int)3.9; (Fraction part is
truncated)
What is wrong?
The correct statement is
int x = 5 / 2.0;
int i=(int)(5/2.0);
18
Type Casting
range increases
byte, short, int, long, float, double
19
Casting in an Augmented Expression
In Java, an augmented expression of the form x1 op=
x2 is implemented as x1 = (T)(x1 op x2), where T is
the type for x1. Therefore, the following code is
correct.
int sum = 0;
sum += 4.5; // sum becomes 4 after this statement
sum += 4.5 is equivalent to sum = (int)(sum + 4.5).
20
Character Data Type
char letter = 'A'; (ASCII)
char numChar = '4'; (ASCII)
Four hexadecimal digits.
char letter = '\u0041'; (Unicode)
char numChar = '\u0034'; (Unicode)
NOTE: The increment and decrement operators can also be used
on char variables to get the next or preceding Unicode character.
For example, the following statements display character b.
char ch = 'a';
System.out.println(++ch);
21
ASCII (The American Standard Code for Information Interchange)
22
Unicode
 An
encoding scheme established by the
Unicode Consortium
 Originally 16-bit but there are
supplementary characters beyond the 16-bit
limit
23
Escape Sequences for Special Characters
Description
Escape Sequence
Unicode
Backspace
\b
\u0008
Tab
\t
\u0009
Linefeed
\n
\u000A
Carriage return \r
\u000D
Backslash
\\
\u005C
Single Quote
\'
\u0027
Double Quote
\"
\u0022
24
Example

Is this a correct statement?
System.out.println("He said "Java is fun" ");
 No.
The statement above will give a compiler
error
 The correct statement will be
System.out.println("He said \"Java is fun\" ");
25
Download