SlideShare a Scribd company logo
SSttrruuccttuurree pprrooggrraammmmiinngg 
JJaavvaa PPrrooggrraammmmiinngg –– TThheeoorryy 
CChhaapptteerr 22 EElleemmeennttaarryy PPrrooggrraammmmiinngg 
FFaaccuullttyy ooff PPhhyyssiiccaall aanndd BBaassiicc 
EEdduuccaattiioonn 
CCoommppuutteerr SScciieennccee 
BByy:: MMsscc.. KK aarrwwaann MM.. 
KKaarreeeemm 
22001144 -- 22001155 
1 
© University of Sulaimani, Faculty of Physical & Basic Education, Department of Computer Science 2014 / 2015
Motivations 
In the preceding chapter, you learned how to 
create, compile, and run a Java program. Starting 
from this chapter, you will learn how to solve 
practical problems programmatically. Through 
these problems, you will learn Java primitive data 
types and related subjects, such as variables, 
constants, data types, operators, expressions, and 
input and output. 
2 
© University of Sulaimani, Faculty of Physical & Basic Education, Department of Computer Science 2014 / 2015
Objectives 
 To write Java programs to perform simple calculations (§2.2). 
 To obtain input from the console using the Scanner class (§2.3). 
 To use identifiers to name variables, constants, methods, and classes (§2.4). 
 To use variables to store data (§§2.5-2.6). 
 To program with assignment statements and assignment expressions (§2.6). 
 To use constants to store permanent data (§2.7). 
 To declare Java primitive data types: byte, short, int, long, float, double, and char 
(§§2.8.1). 
 To use Java operators to write numeric expressions (§§2.8.2–2.8.3). 
 To display current time (§2.9). 
 To use short hand operators (§2.10). 
 To cast value of one type to another type (§2.11). 
 To compute loan payment (§2.12). 
 To represent characters using the char type (§2.13). 
 To compute monetary changes (§2.14). 
 To represent a string using the String type (§2.15). 
 To become familiar with Java documentation, programming style, and naming 
conventions (§2.16). 
 To distinguish syntax errors, runtime errors, and logic errors and debug errors (§2.17). 
 (GUI) To obtain input using the JOptionPane input dialog boxes (§2.18). 
3 
© University of Sulaimani, Faculty of Physical  Basic Education, Department of Computer Science 2014 / 2015
Introducing Programming with an 
Example 
Listing 2.1 Computing the Area of a 
Circle 
This program computes the area of the 
circle. 
4 
© University of Sulaimani, Faculty of Physical  Basic Education, Department of Computer Science 2014 / 2015
Trace a Program Execution 
public class ComputeArea { 
/** Main method */ 
public static void main(String[] args) { 
double radius; 
double area; 
// Assign a radius 
radius = 20; 
// Compute area 
area = radius * radius * 3.14159; 
// Display results 
System.out.println(The area for the circle of radius  + 
radius +  is  + area); 
} 
} 
allocate memory 
for radius 
radius no value 
5 
© University of Sulaimani, Faculty of Physical  Basic Education, Department of Computer Science 2014 / 2015
Trace a Program Execution 
public class ComputeArea { 
/** Main method */ 
public static void main(String[] args) { 
double radius; 
double area; 
// Assign a radius 
radius = 20; 
// Compute area 
area = radius * radius * 3.14159; 
// Display results 
System.out.println(The area for the circle of radius  + 
radius +  is  + area); 
} 
} 
memory 
radius no value 
area no value 
allocate memory 
for area 
6 
© University of Sulaimani, Faculty of Physical  Basic Education, Department of Computer Science 2014 / 2015
Trace a Program Execution 
public class ComputeArea { 
/** Main method */ 
public static void main(String[] args) { 
double radius; 
double area; 
// Assign a radius 
radius = 20; 
// Compute area 
area = radius * radius * 3.14159; 
// Display results 
System.out.println(The area for the circle of radius  + 
radius +  is  + area); 
} 
} 
assign 20 to radius 
radius 20 
area no value 
7 
© University of Sulaimani, Faculty of Physical  Basic Education, Department of Computer Science 2014 / 2015
Trace a Program Execution 
public class ComputeArea { 
/** Main method */ 
public static void main(String[] args) { 
double radius; 
double area; 
// Assign a radius 
radius = 20; 
// Compute area 
area = radius * radius * 3.14159; 
// Display results 
System.out.println(The area for the circle of radius  + 
radius +  is  + area); 
} 
} 
memory 
radius 20 
area 1256.636 
compute area and assign 
it to variable area 
8 
© University of Sulaimani, Faculty of Physical  Basic Education, Department of Computer Science 2014 / 2015
Trace a Program Execution 
public class ComputeArea { 
/** Main method */ 
public static void main(String[] args) { 
double radius; 
double area; 
// Assign a radius 
radius = 20; 
// Compute area 
area = radius * radius * 3.14159; 
// Display results 
System.out.println(The area for the circle of radius  + 
radius +  is  + area); 
} 
} 
memory 
radius 20 
area 1256.636 
print a message to the 
console 
9 
© University of Sulaimani, Faculty of Physical  Basic Education, Department of Computer Science 2014 / 2015
Reading Input from the Console 
1. Create a Scanner object 
Scanner input = new Scanner(System.in); 
2. Use the methods next(), nextByte(), nextShort(), 
nextInt(), nextLong(), nextFloat(), nextDouble(), or 
nextBoolean() to obtain to a string, byte, short, int, 
long, float, double, or boolean value. For 
Example: 
System.out.print(Enter a double value: ); 
Scanner input = new Scanner(System.in); 
double d = input.nextDouble(); 
10 
© University of Sulaimani, Faculty of Physical  Basic Education, Department of Computer Science 2014 / 2015
Identifiers 
 An identifier is a sequence of characters that consist of 
letters, digits, underscores (_), and dollar signs ($). 
 An identifier must start with a letter, an underscore (_), 
or a dollar sign ($). It cannot start with a digit. 
– An identifier cannot be a reserved word. 
 An identifier cannot be true, false, or 
null. 
 An identifier can be of any length. 
11 
© University of Sulaimani, Faculty of Physical  Basic Education, Department of Computer Science 2014 / 2015
Variables 
// Compute the first area 
radius = 1.0; 
area = radius * radius * 3.14159; 
System.out.println(The area is “ + 
area +  for radius +radius); 
// Compute the second area 
radius = 2.0; 
area = radius * radius * 3.14159; 
System.out.println(The area is “ + 
area +  for radius +radius); 
12 
© University of Sulaimani, Faculty of Physical  Basic Education, Department of Computer Science 2014 / 2015
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; 
13 
© University of Sulaimani, Faculty of Physical  Basic Education, Department of Computer Science 2014 / 2015
Assignment Statements 
x = 1; // Assign 1 to x; 
radius = 1.0; // Assign 1.0 to radius; 
a = 'A'; // Assign 'A' to a; 
14 
© University of Sulaimani, Faculty of Physical  Basic Education, Department of Computer Science 2014 / 2015
Declaring and Initializing 
in One Step 
 int x = 1; 
 double d = 1.4; 
15 
© University of Sulaimani, Faculty of Physical  Basic Education, Department of Computer Science 2014 / 2015
Constants 
final datatype CCOONNSSTTAANNTTNNAAMMEE == VVAALLUUEE;; 
final double PI = 3.14159; 
final int SIZE = 3; 
16 
© University of Sulaimani, Faculty of Physical  Basic Education, Department of Computer Science 2014 / 2015
Numerical Data Types 
Name Range Storage Size 
byte –27 (-128) to 27–1 (127) 8-bit signed 
short –215 (-32768) to 215–1 (32767) 16-bit signed 
int –231 (-2147483648) to 231–1 (2147483647) 32-bit signed 
long –263 to 263–1 64-bit signed 
(i.e., -9223372036854775808 
to 9223372036854775807) 
float Negative range: 32-bit IEEE 754 
-3.4028235E+38 to -1.4E-45 
Positive range: 
1.4E-45 to 3.4028235E+38 
double Negative range: 64-bit IEEE 754 
-1.7976931348623157E+308 to 
-4.9E-324 
Positive range: 
4.9E-324 to 1.7976931348623157E+308 
17 
© University of Sulaimani, Faculty of Physical  Basic Education, Department of Computer Science 2014 / 2015
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 
18 
© University of Sulaimani, Faculty of Physical  Basic Education, Department of Computer Science 2014 / 2015
Integer Division 
+, -, *, /, and % 
5 / 2 yields an integer 2. 
5.0 / 2 yields a double value 2.5 
5 % 2 yields 1 (the remainder of the division) 
19 
© University of Sulaimani, Faculty of Physical  Basic Education, Department of Computer Science 2014 / 2015
NOTE 
Calculations involving floating-point numbers are 
aapppprrooxxiimmaatteedd because these numbers are not stored 
with complete accuracy. For example, 
System.out.println(1.0 - 0.1 - 0.1 - 0.1 - 0.1 - 0.1); 
displays 0.5000000000000001, not 0.5, and 
System.out.println(1.0 - 0.9); 
displays 0.09999999999999998, not 0.1. Integers are 
stored pprreecciisseellyy. Therefore, calculations with integers 
yield a precise integer result. 
20 
© University of Sulaimani, Faculty of Physical  Basic Education, Department of Computer Science 2014 / 2015
Number Literals ( (قيمة الحرفية 
A literal is a constant value that appears directly 
in the program. For example, 34 1,000,000, 
and 5.0 are literals in the following statements: 
int i = 34; 
long x = 1000000; 
double d = 5.0; 
21 
© University of Sulaimani, Faculty of Physical  Basic Education, Department of Computer Science 2014 / 2015
Integer Literals 
An integer literal can be assigned to an integer variable as 
long as it can fit into the variable. A compilation error 
would occur if the literal were too large for the variable to 
hold. For example, the statement byte b = 1000 would 
cause a compilation error, because 1000 cannot be stored 
in a variable of the byte type. 
An integer literal is assumed to be of the int type, whose 
value is between -231 (-2147483648) to 231–1 (2147483647). 
To denote an integer literal of the long type, append it with 
the letter L or l. L is preferred because l (lowercase L) can 
easily be confused with 1 (the digit one). 
22 
© University of Sulaimani, Faculty of Physical  Basic Education, Department of Computer Science 2014 / 2015
Floating-Point Literals 
Floating-point literals are written with a decimal 
point. By default, a floating-point literal is treated 
as a double type value. For example, 5.0 is 
considered a double value, not a float value. You 
can make a number a float by appending the letter f 
or F, and make a number a double by appending 
the letter d or D. For example, you can use 100.2f 
or 100.2F for a float number, and 100.2d or 100.2D 
for a double number. 
23 
© University of Sulaimani, Faculty of Physical  Basic Education, Department of Computer Science 2014 / 2015
Arithmetic Expressions 
+ x - y - a + b + c + + + 
10( 5)( ) 9( 4 9 ) 
3 4 
5 
y 
x 
x x 
is translated to 
(3+4*x)/5 – 10*(y-5)*(a+b+c)/x + 9*(4/x + (9+x)/y) 
24 
© University of Sulaimani, Faculty of Physical  Basic Education, Department of Computer Science 2014 / 2015
How to Evaluate an Expression 
Though Java has its own way to evaluate an 
expression behind the scene, the result of a Java 
expression and its corresponding arithmetic expression 
are the same. Therefore, you can safely apply the 
arithmetic rule for evaluating a Java expression. 
3 + 4 * 4 + 5 * (4 + 3) - 1 
3 + 4 * 4 + 5 * 7 – 1 
3 + 16 + 5 * 7 – 1 
3 + 16 + 35 – 1 
19 + 35 – 1 
54 - 1 
53 
(1) inside parentheses first 
(2) multiplication 
(3) multiplication 
(4) addition 
(5) addition 
(6) subtraction 
25 
© University of Sulaimani, Faculty of Physical  Basic Education, Department of Computer Science 2014 / 2015
Problem: Converting Temperatures 
Write a program that converts a Fahrenheit degree 
to Celsius using the formula (Use Scanner Class). 
celsius = 5 fahrenheit - 
( )( 32) 9 
Note: Look Practical part 
26 
© University of Sulaimani, Faculty of Physical  Basic Education, Department of Computer Science 2014 / 2015
Shortcut Assignment 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 
27 
© University of Sulaimani, Faculty of Physical  Basic Education, Department of Computer Science 2014 / 2015
Increment and 
Decrement Operators 
Operator Name Description 
++var preincrement The expression (++var) increments var by 1 and evaluates 
to the new value in var after the increment. 
var++ postincrement The expression (var++) evaluates to the original value 
in var and increments var by 1. 
--var predecrement The expression (--var) decrements var by 1 and evaluates 
to the new value in var after the decrement. 
var-- postdecrement The expression (var--) evaluates to the original value 
in var and decrements var by 1. 
28 
© University of Sulaimani, Faculty of Physical  Basic Education, Department of Computer Science 2014 / 2015
Increment and 
Decrement Operators, cont. 
int i = 10; 
int newNum = 10 * i++; int newNum = 10 * i; 
i = i + 1; 
Same effect as 
int i = 10; 
int newNum = 10 * (++i); i = i + 1; 
int newNum = 10 * i; 
Same effect as 
29 
© University of Sulaimani, Faculty of Physical  Basic Education, Department of Computer Science 2014 / 2015
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. 
30 
© University of Sulaimani, Faculty of Physical  Basic Education, Department of Computer Science 2014 / 2015
Assignment Expressions and 
Assignment Statements 
Prior to Java 2, all the expressions can be used as 
statements. Since Java 2, only the following types of 
expressions can be statements: 
variable op= expression; // Where op is +, -, *, /, or % 
++variable; 
variable++; 
--variable; 
variable--; 
31 
© University of Sulaimani, Faculty of Physical  Basic Education, Department of Computer Science 2014 / 2015
Numeric Type Conversion 
Consider the following statements: 
byte i = 100; 
long k = i * 3 + 4; 
double d = i * 3.1 + k / 2; 
32 
© University of Sulaimani, Faculty of Physical  Basic Education, Department of Computer Science 2014 / 2015
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. 
33 
© University of Sulaimani, Faculty of Physical  Basic Education, Department of Computer Science 2014 / 2015
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? int x = 5 / 2.0; 
range increases 
byte, short, int, long, float, double 
34 
© University of Sulaimani, Faculty of Physical  Basic Education, Department of Computer Science 2014 / 2015
Character Data Type 
Four hexadecimal digits. 
char letter = 'A'; (ASCII) 
char numChar = '4'; (ASCII) 
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); 
35 
© University of Sulaimani, Faculty of Physical  Basic Education, Department of Computer Science 2014 / 2015
Unicode Format 
Java characters use Unicode, a 16-bit encoding scheme 
established by the Unicode Consortium to support the 
interchange, processing, and display of written texts in the 
world’s diverse languages. Unicode takes two bytes, 
preceded by u, expressed in four hexadecimal numbers 
that run from 'u0000' to 'uFFFF'. So, Unicode can 
represent 65535 + 1 characters. 
Unicode u03b1 u03b2 u03b3 for three Greek 
letters 
36 
© University of Sulaimani, Faculty of Physical  Basic Education, Department of Computer Science 2014 / 2015
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 
37 
© University of Sulaimani, Faculty of Physical  Basic Education, Department of Computer Science 2014 / 2015
Appendix B: ASCII Character Set 
ASCII Character Set is a subset of the Unicode from u0000 to u007f 
38 
© University of Sulaimani, Faculty of Physical  Basic Education, Department of Computer Science 2014 / 2015
ASCII Character Set, cont. 
ASCII Character Set is a subset of the Unicode from u0000 to u007f 
39 
© University of Sulaimani, Faculty of Physical  Basic Education, Department of Computer Science 2014 / 2015
Casting between char and 
Numeric Types 
int i = 'a'; // Same as int i = (int)'a'; 
char c = 97; // Same as char c = (char)97; 
40 
© University of Sulaimani, Faculty of Physical  Basic Education, Department of Computer Science 2014 / 2015
Problem: Monetary Units 
This program lets the user enter the amount in 
decimal representing dollars and cents and output 
a report listing the monetary equivalent in single 
dollars, quarters, dimes, nickels, and pennies. 
Your program should report maximum number of 
dollars, then the maximum number of quarters, 
and so on, in this order. 
41 
© University of Sulaimani, Faculty of Physical  Basic Education, Department of Computer Science 2014 / 2015
Trace ComputeChange 
int remainingAmount = (int)(amount * 100); 
// Find the number of one dollars 
int numberOfOneDollars = remainingAmount / 100; 
remainingAmount = remainingAmount % 100; 
// Find the number of quarters in the remaining amount 
int numberOfQuarters = remainingAmount / 25; 
remainingAmount = remainingAmount % 25; 
// Find the number of dimes in the remaining amount 
int numberOfDimes = remainingAmount / 10; 
remainingAmount = remainingAmount % 10; 
// Find the number of nickels in the remaining amount 
int numberOfNickels = remainingAmount / 5; 
remainingAmount = remainingAmount % 5; 
// Find the number of pennies in the remaining amount 
int numberOfPennies = remainingAmount; 
remainingAmount 1156 
remainingAmount 
initialized 
Suppose amount is 11.56 
42 
© University of Sulaimani, Faculty of Physical  Basic Education, Department of Computer Science 2014 / 2015
Trace ComputeChange 
int remainingAmount = (int)(amount * 100); 
// Find the number of one dollars 
int numberOfOneDollars = remainingAmount / 100; 
remainingAmount = remainingAmount % 100; 
// Find the number of quarters in the remaining amount 
int numberOfQuarters = remainingAmount / 25; 
remainingAmount = remainingAmount % 25; 
// Find the number of dimes in the remaining amount 
int numberOfDimes = remainingAmount / 10; 
remainingAmount = remainingAmount % 10; 
// Find the number of nickels in the remaining amount 
int numberOfNickels = remainingAmount / 5; 
remainingAmount = remainingAmount % 5; 
// Find the number of pennies in the remaining amount 
int numberOfPennies = remainingAmount; 
remainingAmount 1156 
Suppose amount is 11.56 
numberOfOneDollars 11 
numberOfOneDollars 
assigned 
43 
© University of Sulaimani, Faculty of Physical  Basic Education, Department of Computer Science 2014 / 2015
Trace ComputeChange 
int remainingAmount = (int)(amount * 100); 
// Find the number of one dollars 
int numberOfOneDollars = remainingAmount / 100; 
remainingAmount = remainingAmount % 100; 
// Find the number of quarters in the remaining amount 
int numberOfQuarters = remainingAmount / 25; 
remainingAmount = remainingAmount % 25; 
// Find the number of dimes in the remaining amount 
int numberOfDimes = remainingAmount / 10; 
remainingAmount = remainingAmount % 10; 
// Find the number of nickels in the remaining amount 
int numberOfNickels = remainingAmount / 5; 
remainingAmount = remainingAmount % 5; 
// Find the number of pennies in the remaining amount 
int numberOfPennies = remainingAmount; 
remainingAmount 56 
Suppose amount is 11.56 
numberOfOneDollars 11 
remainingAmount 
updated 
44 
© University of Sulaimani, Faculty of Physical  Basic Education, Department of Computer Science 2014 / 2015
Trace ComputeChange 
int remainingAmount = (int)(amount * 100); 
// Find the number of one dollars 
int numberOfOneDollars = remainingAmount / 100; 
remainingAmount = remainingAmount % 100; 
// Find the number of quarters in the remaining amount 
int numberOfQuarters = remainingAmount / 25; 
remainingAmount = remainingAmount % 25; 
// Find the number of dimes in the remaining amount 
int numberOfDimes = remainingAmount / 10; 
remainingAmount = remainingAmount % 10; 
// Find the number of nickels in the remaining amount 
int numberOfNickels = remainingAmount / 5; 
remainingAmount = remainingAmount % 5; 
// Find the number of pennies in the remaining amount 
int numberOfPennies = remainingAmount; 
remainingAmount 56 
Suppose amount is 11.56 
numberOfOneDollars 11 
numberOfOneQuarters 2 
numberOfOneQuarters 
assigned 
45 
© University of Sulaimani, Faculty of Physical  Basic Education, Department of Computer Science 2014 / 2015
Trace ComputeChange 
int remainingAmount = (int)(amount * 100); 
// Find the number of one dollars 
int numberOfOneDollars = remainingAmount / 100; 
remainingAmount = remainingAmount % 100; 
// Find the number of quarters in the remaining amount 
int numberOfQuarters = remainingAmount / 25; 
remainingAmount = remainingAmount % 25; 
// Find the number of dimes in the remaining amount 
int numberOfDimes = remainingAmount / 10; 
remainingAmount = remainingAmount % 10; 
// Find the number of nickels in the remaining amount 
int numberOfNickels = remainingAmount / 5; 
remainingAmount = remainingAmount % 5; 
// Find the number of pennies in the remaining amount 
int numberOfPennies = remainingAmount; 
remainingAmount 6 
Suppose amount is 11.56 
numberOfOneDollars 11 
numberOfQuarters 2 
remainingAmount 
updated 
46 
© University of Sulaimani, Faculty of Physical  Basic Education, Department of Computer Science 2014 / 2015
The String Type 
The char type only represents one character. To represent a string 
of characters, use the data type called String. For example, 
String message = Welcome to Java; 
String is actually a predefined class in the Java library just like the 
System class and JOptionPane class. The String type is not a 
primitive type. It is known as a reference type. Any Java class can 
be used as a reference type for a variable. 
Note: For the time being, you just need to know how to declare a 
String variable, how to assign a string to the variable, and how to 
concatenate strings. 
47 
© University of Sulaimani, Faculty of Physical  Basic Education, Department of Computer Science 2014 / 2015
String Concatenation 
// Three strings are concatenated 
String message = Welcome  + to  + Java; 
// String Chapter is concatenated with number 2 
String s = Chapter + 2; // s becomes Chapter2 
// String Supplement is concatenated with character B 
String s1 = Supplement + 'B'; // s1 becomes SupplementB 
48 
© University of Sulaimani, Faculty of Physical  Basic Education, Department of Computer Science 2014 / 2015
Programming Style and 
Documentation 
 Appropriate Comments 
 Naming Conventions 
 Proper Indentation and Spacing 
Lines 
 Block Styles 
49 
© University of Sulaimani, Faculty of Physical  Basic Education, Department of Computer Science 2014 / 2015
Appropriate Comments 
Include a summary at the beginning of the 
program to explain what the program does, its key 
features, its supporting data structures, and any 
unique techniques it uses. 
Include your name, ccllaassss sseeccttiioonn,, iinnssttrruuccttoorr,, ddaattee,, 
aanndd aa bbrriieeff ddeessccrriippttiioonn aatt tthhee bbeeggiinnnniinngg ooff tthhee 
pprrooggrraamm.. 
50 
© University of Sulaimani, Faculty of Physical  Basic Education, Department of Computer Science 2014 / 2015
Naming Conventions, cont. 
 Class names: 
– Capitalize the first letter of each word in 
the name. For example, the class name 
ComputeArea. 
 Constants: 
– Capitalize all letters in constants, and use 
underscores to connect words. For 
example, the constant PI and 
MAX_VALUE 
51 
© University of Sulaimani, Faculty of Physical  Basic Education, Department of Computer Science 2014 / 2015
Proper Indentation and Spacing 
Indentation 
– Indent two spaces. 
Spacing 
– Use blank line to separate segments of the code. 
52 
© University of Sulaimani, Faculty of Physical  Basic Education, Department of Computer Science 2014 / 2015
Block Styles 
Use end-of-line style for braces. 
public class Test 
{ 
public static void main(String[] args) 
{ 
System.out.println(Block Styles); 
} 
} 
public class Test { 
public static void main(String[] args) { 
System.out.println(Block Styles); 
} 
} 
End-of-line 
style 
Next-line 
style 
53 
© University of Sulaimani, Faculty of Physical  Basic Education, Department of Computer Science 2014 / 2015
Programming Errors 
Syntax Errors 
– Detected by the compiler 
Runtime Errors 
– Causes the program to abort 
Logic Errors 
– Produces incorrect result 
54 
© University of Sulaimani, Faculty of Physical  Basic Education, Department of Computer Science 2014 / 2015
Syntax Errors 
public class ShowSyntaxErrors { 
public static void main(String[] args) { 
i = 30; 
System.out.println(i + 4); 
} 
} 
55 
© University of Sulaimani, Faculty of Physical  Basic Education, Department of Computer Science 2014 / 2015
Runtime Errors 
public class ShowRuntimeErrors { 
public static void main(String[] args) { 
int i = 1 / 0; 
} 
} 
56 
© University of Sulaimani, Faculty of Physical  Basic Education, Department of Computer Science 2014 / 2015
Logic Errors 
public class ShowLogicErrors { 
//// DDeetteerrmmiinnee iiff aa nnuummbbeerr iiss bbeettwweeeenn 11 aanndd 110000 iinncclluussiivveellyy 
public static void main(String[] args) { 
// Prompt the user to enter a number 
String input = JOptionPane.showInputDialog(null, 
Please enter an integer:, 
ShowLogicErrors, JOptionPane.QUESTION_MESSAGE); 
int number = Integer.parseInt(input); 
// Display the result 
System.out.println(The number is between 1 and 100,  + 
inclusively?  + ((11  nnuummbbeerr)  (number  100))); 
System.exit(0); 
} 
} 
57 
© University of Sulaimani, Faculty of Physical  Basic Education, Department of Computer Science 2014 / 2015
Debugging 
Logic errors are called bugs. TThhee pprroocceessss ooff ffiinnddiinngg aanndd 
ccoorrrreeccttiinngg eerrrroorrss iiss ccaalllleedd ddeebbuuggggiinngg.. A common approach 
to debugging is to use a combination of methods to narrow 
down to the part of the program where the bug is located. 
You can hand-trace the program (i.e., catch errors by 
reading the program), or you can insert print statements in 
order to show the values of the variables or the execution 
flow of the program. This approach might work for a short, 
simple program. But for a large, complex program, the 
most effective approach for debugging is to use a ddeebbuuggggeerr 
uuttiilliittyy.. 
58 
© University of Sulaimani, Faculty of Physical  Basic Education, Department of Computer Science 2014 / 2015
Debugger 
Debugger is a program that facilitates debugging. 
You can use a debugger to 
Execute a single statement at a time. 
Trace into or stepping over a method. 
Set breakpoints. 
Display variables. 
Display call stack. 
Modify variables. 
59 
© University of Sulaimani, Faculty of Physical  Basic Education, Department of Computer Science 2014 / 2015
JOptionPane Input 
This slide provides two ways of obtaining input. 
1. Using the Scanner class (console input) 
2. Using JOptionPane input dialogs 
60 
© University of Sulaimani, Faculty of Physical  Basic Education, Department of Computer Science 2014 / 2015
Getting Input from Input Dialog Boxes 
String input = JOptionPane.showInputDialog( 
Enter an input); 
61 
© University of Sulaimani, Faculty of Physical  Basic Education, Department of Computer Science 2014 / 2015
Getting Input from Input Dialog Boxes 
String string = JOptionPane.showInputDialog( 
null, “Prompting Message”, “Dialog Title”, 
JOptionPane.QUESTION_MESSAGE); 
62 
© University of Sulaimani, Faculty of Physical  Basic Education, Department of Computer Science 2014 / 2015
Two Ways to Invoke the Method 
There are several ways to use the showInputDialog method. For 
the time being, you only need to know two ways to invoke it. 
One is to use a statement as shown in the example: 
String string = JOptionPane.showInputDialog(null, x, 
y, JOptionPane.QUESTION_MESSAGE); 
where x is a string for the prompting message, and y is a string for 
the title of the input dialog box. 
The other is to use a statement like this: 
JOptionPane.showInputDialog(x); 
where x is a string for the prompting message. 
63 
© University of Sulaimani, Faculty of Physical  Basic Education, Department of Computer Science 2014 / 2015
Converting Strings to Integers 
The input returned from the input dialog box is a string. If 
you enter a numeric value such as 123, it returns “123”. 
To obtain the input as a number, you have to convert a 
string into a number. 
To convert a string into an int value, you can use the 
static parseInt method in the Integer class as follows: 
int intValue = Integer.parseInt(intString); 
where intString is a numeric string such as “123”. 
64 
© University of Sulaimani, Faculty of Physical  Basic Education, Department of Computer Science 2014 / 2015
Converting Strings to Doubles 
To convert a string into a double value, you can use the 
static parseDouble method in the Double class as follows: 
double doubleValue =Double.parseDouble(doubleString); 
where doubleString is a numeric string such as “123.45”. 
65 
© University of Sulaimani, Faculty of Physical  Basic Education, Department of Computer Science 2014 / 2015

More Related Content

Viewers also liked (20)

PDF
A4. What about other religions?
Tony Watkins
 
PPT
Digging into the Deep Web
Wendy DeGroat
 
PPS
Power Point Lesson 07 P1
Nasir Jumani
 
PPTX
How the Internet works...and why
APNIC
 
PDF
Setting standards-friendly web type
Pascal Klein
 
PPTX
Asia Pacific Internet Leadership Program
APNIC
 
PPT
Chapter2 computer
merihan90
 
PPT
W 10 introduction to network
Institute of Management Studies UOP
 
PPTX
World Geography: Sample PowerPoint
Julia Hemmings
 
PDF
Akram Atallah Presentation from Middle East DNS Forum
ICANN
 
PPTX
Internet an how it works
shahnaz10
 
PPT
Infobrokering And Searching The Deep Web
Witold Kozakiewicz
 
PPTX
Introduction to network ( Internet and its layer) Or how internet really works!
Mohammad kermani
 
PPTX
A brief history of home computer technology
venusanderson225
 
PPTX
E-COMMERCE: The Dark Web
rardthebeast
 
PPS
Power Point Lesson 08 P2
Nasir Jumani
 
PPTX
Internet servers
MALINENI VENKATESH
 
PPSX
Making domain name and IP address policy at ICANN
Stephane Van Gelder
 
PDF
ICANN Rules vs Privacy
Blacknight
 
A4. What about other religions?
Tony Watkins
 
Digging into the Deep Web
Wendy DeGroat
 
Power Point Lesson 07 P1
Nasir Jumani
 
How the Internet works...and why
APNIC
 
Setting standards-friendly web type
Pascal Klein
 
Asia Pacific Internet Leadership Program
APNIC
 
Chapter2 computer
merihan90
 
W 10 introduction to network
Institute of Management Studies UOP
 
World Geography: Sample PowerPoint
Julia Hemmings
 
Akram Atallah Presentation from Middle East DNS Forum
ICANN
 
Internet an how it works
shahnaz10
 
Infobrokering And Searching The Deep Web
Witold Kozakiewicz
 
Introduction to network ( Internet and its layer) Or how internet really works!
Mohammad kermani
 
A brief history of home computer technology
venusanderson225
 
E-COMMERCE: The Dark Web
rardthebeast
 
Power Point Lesson 08 P2
Nasir Jumani
 
Internet servers
MALINENI VENKATESH
 
Making domain name and IP address policy at ICANN
Stephane Van Gelder
 
ICANN Rules vs Privacy
Blacknight
 

Similar to Java programming: Elementary programming (20)

PPT
Java™ (OOP) - Chapter 2: "Elementary Programming"
Gouda Mando
 
PPT
CSE215_Module_02_Elementary_Programming.ppt
RashedurRahman18
 
PPT
02slidLarge value of face area Large value of face area
AhmadHashlamon
 
PPT
Primitive Data Types and Operations
naimanighat
 
PPTX
02slide_accessible.pptx
MattMarino13
 
PPT
Chapter 2: Elementary Programming | Liang.ppt
ImranPollob1
 
PPT
Ch2 Liang
Dorothea Chaffin
 
PPT
JavaYDL2
Terry Yoast
 
PPT
Java programming: Elementary practice
Karwan Mustafa Kareem
 
PPTX
intro to java object oreinted programming school of computing
ibrahemtariq
 
PPT
02slidjkhk;hkbkghjjhjhjhfjhfjhfjhflfe.ppt
raniaelkotby1
 
PPTX
Object oriented programming1 Week 1.pptx
MirHazarKhan1
 
PDF
Lec-2- Ehsjdjkck. Jdkdbd djskrogramming.pdf
RahulKumar342376
 
PPT
M C6java2
mbruggen
 
PDF
JavaProgrammingManual
Naveen Sagayaselvaraj
 
PPTX
02. Data Types and variables
Intro C# Book
 
PPTX
Ch2 Elementry Programmin as per gtu oop.pptx
nilampatoliya
 
PPT
a basic java programming and data type.ppt
GevitaChinnaiah
 
PDF
Java Lab Manual
Naveen Sagayaselvaraj
 
Java™ (OOP) - Chapter 2: "Elementary Programming"
Gouda Mando
 
CSE215_Module_02_Elementary_Programming.ppt
RashedurRahman18
 
02slidLarge value of face area Large value of face area
AhmadHashlamon
 
Primitive Data Types and Operations
naimanighat
 
02slide_accessible.pptx
MattMarino13
 
Chapter 2: Elementary Programming | Liang.ppt
ImranPollob1
 
Ch2 Liang
Dorothea Chaffin
 
JavaYDL2
Terry Yoast
 
Java programming: Elementary practice
Karwan Mustafa Kareem
 
intro to java object oreinted programming school of computing
ibrahemtariq
 
02slidjkhk;hkbkghjjhjhjhfjhfjhfjhflfe.ppt
raniaelkotby1
 
Object oriented programming1 Week 1.pptx
MirHazarKhan1
 
Lec-2- Ehsjdjkck. Jdkdbd djskrogramming.pdf
RahulKumar342376
 
M C6java2
mbruggen
 
JavaProgrammingManual
Naveen Sagayaselvaraj
 
02. Data Types and variables
Intro C# Book
 
Ch2 Elementry Programmin as per gtu oop.pptx
nilampatoliya
 
a basic java programming and data type.ppt
GevitaChinnaiah
 
Java Lab Manual
Naveen Sagayaselvaraj
 
Ad

More from Karwan Mustafa Kareem (7)

PPTX
Computer and network security
Karwan Mustafa Kareem
 
PPT
Java Programming: Loops
Karwan Mustafa Kareem
 
PPT
Java Programmin: Selections
Karwan Mustafa Kareem
 
PPT
Introduction to Java Programming Language
Karwan Mustafa Kareem
 
PPTX
Cryptography
Karwan Mustafa Kareem
 
PPTX
MySQL Database with phpMyAdmin
Karwan Mustafa Kareem
 
PPT
Database Application with MySQL
Karwan Mustafa Kareem
 
Computer and network security
Karwan Mustafa Kareem
 
Java Programming: Loops
Karwan Mustafa Kareem
 
Java Programmin: Selections
Karwan Mustafa Kareem
 
Introduction to Java Programming Language
Karwan Mustafa Kareem
 
Cryptography
Karwan Mustafa Kareem
 
MySQL Database with phpMyAdmin
Karwan Mustafa Kareem
 
Database Application with MySQL
Karwan Mustafa Kareem
 
Ad

Recently uploaded (20)

PDF
IoT-Powered Industrial Transformation – Smart Manufacturing to Connected Heal...
Rejig Digital
 
PDF
[Newgen] NewgenONE Marvin Brochure 1.pdf
darshakparmar
 
PPTX
"Autonomy of LLM Agents: Current State and Future Prospects", Oles` Petriv
Fwdays
 
PDF
Jak MŚP w Europie Środkowo-Wschodniej odnajdują się w świecie AI
dominikamizerska1
 
PDF
Transcript: New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
PPTX
WooCommerce Workshop: Bring Your Laptop
Laura Hartwig
 
PDF
LLMs.txt: Easily Control How AI Crawls Your Site
Keploy
 
PDF
NewMind AI - Journal 100 Insights After The 100th Issue
NewMind AI
 
PDF
July Patch Tuesday
Ivanti
 
PDF
DevBcn - Building 10x Organizations Using Modern Productivity Metrics
Justin Reock
 
PDF
Presentation - Vibe Coding The Future of Tech
yanuarsinggih1
 
PPTX
Building Search Using OpenSearch: Limitations and Workarounds
Sease
 
PDF
Exolore The Essential AI Tools in 2025.pdf
Srinivasan M
 
PDF
POV_ Why Enterprises Need to Find Value in ZERO.pdf
darshakparmar
 
PDF
Bitcoin for Millennials podcast with Bram, Power Laws of Bitcoin
Stephen Perrenod
 
PDF
Smart Trailers 2025 Update with History and Overview
Paul Menig
 
PDF
Fl Studio 24.2.2 Build 4597 Crack for Windows Free Download 2025
faizk77g
 
PDF
Using FME to Develop Self-Service CAD Applications for a Major UK Police Force
Safe Software
 
PDF
Empower Inclusion Through Accessible Java Applications
Ana-Maria Mihalceanu
 
PDF
Building Real-Time Digital Twins with IBM Maximo & ArcGIS Indoors
Safe Software
 
IoT-Powered Industrial Transformation – Smart Manufacturing to Connected Heal...
Rejig Digital
 
[Newgen] NewgenONE Marvin Brochure 1.pdf
darshakparmar
 
"Autonomy of LLM Agents: Current State and Future Prospects", Oles` Petriv
Fwdays
 
Jak MŚP w Europie Środkowo-Wschodniej odnajdują się w świecie AI
dominikamizerska1
 
Transcript: New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
WooCommerce Workshop: Bring Your Laptop
Laura Hartwig
 
LLMs.txt: Easily Control How AI Crawls Your Site
Keploy
 
NewMind AI - Journal 100 Insights After The 100th Issue
NewMind AI
 
July Patch Tuesday
Ivanti
 
DevBcn - Building 10x Organizations Using Modern Productivity Metrics
Justin Reock
 
Presentation - Vibe Coding The Future of Tech
yanuarsinggih1
 
Building Search Using OpenSearch: Limitations and Workarounds
Sease
 
Exolore The Essential AI Tools in 2025.pdf
Srinivasan M
 
POV_ Why Enterprises Need to Find Value in ZERO.pdf
darshakparmar
 
Bitcoin for Millennials podcast with Bram, Power Laws of Bitcoin
Stephen Perrenod
 
Smart Trailers 2025 Update with History and Overview
Paul Menig
 
Fl Studio 24.2.2 Build 4597 Crack for Windows Free Download 2025
faizk77g
 
Using FME to Develop Self-Service CAD Applications for a Major UK Police Force
Safe Software
 
Empower Inclusion Through Accessible Java Applications
Ana-Maria Mihalceanu
 
Building Real-Time Digital Twins with IBM Maximo & ArcGIS Indoors
Safe Software
 

Java programming: Elementary programming

  • 1. SSttrruuccttuurree pprrooggrraammmmiinngg JJaavvaa PPrrooggrraammmmiinngg –– TThheeoorryy CChhaapptteerr 22 EElleemmeennttaarryy PPrrooggrraammmmiinngg FFaaccuullttyy ooff PPhhyyssiiccaall aanndd BBaassiicc EEdduuccaattiioonn CCoommppuutteerr SScciieennccee BByy:: MMsscc.. KK aarrwwaann MM.. KKaarreeeemm 22001144 -- 22001155 1 © University of Sulaimani, Faculty of Physical & Basic Education, Department of Computer Science 2014 / 2015
  • 2. Motivations In the preceding chapter, you learned how to create, compile, and run a Java program. Starting from this chapter, you will learn how to solve practical problems programmatically. Through these problems, you will learn Java primitive data types and related subjects, such as variables, constants, data types, operators, expressions, and input and output. 2 © University of Sulaimani, Faculty of Physical & Basic Education, Department of Computer Science 2014 / 2015
  • 3. Objectives To write Java programs to perform simple calculations (§2.2). To obtain input from the console using the Scanner class (§2.3). To use identifiers to name variables, constants, methods, and classes (§2.4). To use variables to store data (§§2.5-2.6). To program with assignment statements and assignment expressions (§2.6). To use constants to store permanent data (§2.7). To declare Java primitive data types: byte, short, int, long, float, double, and char (§§2.8.1). To use Java operators to write numeric expressions (§§2.8.2–2.8.3). To display current time (§2.9). To use short hand operators (§2.10). To cast value of one type to another type (§2.11). To compute loan payment (§2.12). To represent characters using the char type (§2.13). To compute monetary changes (§2.14). To represent a string using the String type (§2.15). To become familiar with Java documentation, programming style, and naming conventions (§2.16). To distinguish syntax errors, runtime errors, and logic errors and debug errors (§2.17). (GUI) To obtain input using the JOptionPane input dialog boxes (§2.18). 3 © University of Sulaimani, Faculty of Physical Basic Education, Department of Computer Science 2014 / 2015
  • 4. Introducing Programming with an Example Listing 2.1 Computing the Area of a Circle This program computes the area of the circle. 4 © University of Sulaimani, Faculty of Physical Basic Education, Department of Computer Science 2014 / 2015
  • 5. Trace a Program Execution public class ComputeArea { /** Main method */ public static void main(String[] args) { double radius; double area; // Assign a radius radius = 20; // Compute area area = radius * radius * 3.14159; // Display results System.out.println(The area for the circle of radius + radius + is + area); } } allocate memory for radius radius no value 5 © University of Sulaimani, Faculty of Physical Basic Education, Department of Computer Science 2014 / 2015
  • 6. Trace a Program Execution public class ComputeArea { /** Main method */ public static void main(String[] args) { double radius; double area; // Assign a radius radius = 20; // Compute area area = radius * radius * 3.14159; // Display results System.out.println(The area for the circle of radius + radius + is + area); } } memory radius no value area no value allocate memory for area 6 © University of Sulaimani, Faculty of Physical Basic Education, Department of Computer Science 2014 / 2015
  • 7. Trace a Program Execution public class ComputeArea { /** Main method */ public static void main(String[] args) { double radius; double area; // Assign a radius radius = 20; // Compute area area = radius * radius * 3.14159; // Display results System.out.println(The area for the circle of radius + radius + is + area); } } assign 20 to radius radius 20 area no value 7 © University of Sulaimani, Faculty of Physical Basic Education, Department of Computer Science 2014 / 2015
  • 8. Trace a Program Execution public class ComputeArea { /** Main method */ public static void main(String[] args) { double radius; double area; // Assign a radius radius = 20; // Compute area area = radius * radius * 3.14159; // Display results System.out.println(The area for the circle of radius + radius + is + area); } } memory radius 20 area 1256.636 compute area and assign it to variable area 8 © University of Sulaimani, Faculty of Physical Basic Education, Department of Computer Science 2014 / 2015
  • 9. Trace a Program Execution public class ComputeArea { /** Main method */ public static void main(String[] args) { double radius; double area; // Assign a radius radius = 20; // Compute area area = radius * radius * 3.14159; // Display results System.out.println(The area for the circle of radius + radius + is + area); } } memory radius 20 area 1256.636 print a message to the console 9 © University of Sulaimani, Faculty of Physical Basic Education, Department of Computer Science 2014 / 2015
  • 10. Reading Input from the Console 1. Create a Scanner object Scanner input = new Scanner(System.in); 2. Use the methods next(), nextByte(), nextShort(), nextInt(), nextLong(), nextFloat(), nextDouble(), or nextBoolean() to obtain to a string, byte, short, int, long, float, double, or boolean value. For Example: System.out.print(Enter a double value: ); Scanner input = new Scanner(System.in); double d = input.nextDouble(); 10 © University of Sulaimani, Faculty of Physical Basic Education, Department of Computer Science 2014 / 2015
  • 11. Identifiers An identifier is a sequence of characters that consist of letters, digits, underscores (_), and dollar signs ($). An identifier must start with a letter, an underscore (_), or a dollar sign ($). It cannot start with a digit. – An identifier cannot be a reserved word. An identifier cannot be true, false, or null. An identifier can be of any length. 11 © University of Sulaimani, Faculty of Physical Basic Education, Department of Computer Science 2014 / 2015
  • 12. Variables // Compute the first area radius = 1.0; area = radius * radius * 3.14159; System.out.println(The area is “ + area + for radius +radius); // Compute the second area radius = 2.0; area = radius * radius * 3.14159; System.out.println(The area is “ + area + for radius +radius); 12 © University of Sulaimani, Faculty of Physical Basic Education, Department of Computer Science 2014 / 2015
  • 13. 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; 13 © University of Sulaimani, Faculty of Physical Basic Education, Department of Computer Science 2014 / 2015
  • 14. Assignment Statements x = 1; // Assign 1 to x; radius = 1.0; // Assign 1.0 to radius; a = 'A'; // Assign 'A' to a; 14 © University of Sulaimani, Faculty of Physical Basic Education, Department of Computer Science 2014 / 2015
  • 15. Declaring and Initializing in One Step int x = 1; double d = 1.4; 15 © University of Sulaimani, Faculty of Physical Basic Education, Department of Computer Science 2014 / 2015
  • 16. Constants final datatype CCOONNSSTTAANNTTNNAAMMEE == VVAALLUUEE;; final double PI = 3.14159; final int SIZE = 3; 16 © University of Sulaimani, Faculty of Physical Basic Education, Department of Computer Science 2014 / 2015
  • 17. Numerical Data Types Name Range Storage Size byte –27 (-128) to 27–1 (127) 8-bit signed short –215 (-32768) to 215–1 (32767) 16-bit signed int –231 (-2147483648) to 231–1 (2147483647) 32-bit signed long –263 to 263–1 64-bit signed (i.e., -9223372036854775808 to 9223372036854775807) float Negative range: 32-bit IEEE 754 -3.4028235E+38 to -1.4E-45 Positive range: 1.4E-45 to 3.4028235E+38 double Negative range: 64-bit IEEE 754 -1.7976931348623157E+308 to -4.9E-324 Positive range: 4.9E-324 to 1.7976931348623157E+308 17 © University of Sulaimani, Faculty of Physical Basic Education, Department of Computer Science 2014 / 2015
  • 18. 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 18 © University of Sulaimani, Faculty of Physical Basic Education, Department of Computer Science 2014 / 2015
  • 19. Integer Division +, -, *, /, and % 5 / 2 yields an integer 2. 5.0 / 2 yields a double value 2.5 5 % 2 yields 1 (the remainder of the division) 19 © University of Sulaimani, Faculty of Physical Basic Education, Department of Computer Science 2014 / 2015
  • 20. NOTE Calculations involving floating-point numbers are aapppprrooxxiimmaatteedd because these numbers are not stored with complete accuracy. For example, System.out.println(1.0 - 0.1 - 0.1 - 0.1 - 0.1 - 0.1); displays 0.5000000000000001, not 0.5, and System.out.println(1.0 - 0.9); displays 0.09999999999999998, not 0.1. Integers are stored pprreecciisseellyy. Therefore, calculations with integers yield a precise integer result. 20 © University of Sulaimani, Faculty of Physical Basic Education, Department of Computer Science 2014 / 2015
  • 21. Number Literals ( (قيمة الحرفية A literal is a constant value that appears directly in the program. For example, 34 1,000,000, and 5.0 are literals in the following statements: int i = 34; long x = 1000000; double d = 5.0; 21 © University of Sulaimani, Faculty of Physical Basic Education, Department of Computer Science 2014 / 2015
  • 22. Integer Literals An integer literal can be assigned to an integer variable as long as it can fit into the variable. A compilation error would occur if the literal were too large for the variable to hold. For example, the statement byte b = 1000 would cause a compilation error, because 1000 cannot be stored in a variable of the byte type. An integer literal is assumed to be of the int type, whose value is between -231 (-2147483648) to 231–1 (2147483647). To denote an integer literal of the long type, append it with the letter L or l. L is preferred because l (lowercase L) can easily be confused with 1 (the digit one). 22 © University of Sulaimani, Faculty of Physical Basic Education, Department of Computer Science 2014 / 2015
  • 23. Floating-Point Literals Floating-point literals are written with a decimal point. By default, a floating-point literal is treated as a double type value. For example, 5.0 is considered a double value, not a float value. You can make a number a float by appending the letter f or F, and make a number a double by appending the letter d or D. For example, you can use 100.2f or 100.2F for a float number, and 100.2d or 100.2D for a double number. 23 © University of Sulaimani, Faculty of Physical Basic Education, Department of Computer Science 2014 / 2015
  • 24. Arithmetic Expressions + x - y - a + b + c + + + 10( 5)( ) 9( 4 9 ) 3 4 5 y x x x is translated to (3+4*x)/5 – 10*(y-5)*(a+b+c)/x + 9*(4/x + (9+x)/y) 24 © University of Sulaimani, Faculty of Physical Basic Education, Department of Computer Science 2014 / 2015
  • 25. How to Evaluate an Expression Though Java has its own way to evaluate an expression behind the scene, the result of a Java expression and its corresponding arithmetic expression are the same. Therefore, you can safely apply the arithmetic rule for evaluating a Java expression. 3 + 4 * 4 + 5 * (4 + 3) - 1 3 + 4 * 4 + 5 * 7 – 1 3 + 16 + 5 * 7 – 1 3 + 16 + 35 – 1 19 + 35 – 1 54 - 1 53 (1) inside parentheses first (2) multiplication (3) multiplication (4) addition (5) addition (6) subtraction 25 © University of Sulaimani, Faculty of Physical Basic Education, Department of Computer Science 2014 / 2015
  • 26. Problem: Converting Temperatures Write a program that converts a Fahrenheit degree to Celsius using the formula (Use Scanner Class). celsius = 5 fahrenheit - ( )( 32) 9 Note: Look Practical part 26 © University of Sulaimani, Faculty of Physical Basic Education, Department of Computer Science 2014 / 2015
  • 27. Shortcut Assignment 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 27 © University of Sulaimani, Faculty of Physical Basic Education, Department of Computer Science 2014 / 2015
  • 28. Increment and Decrement Operators Operator Name Description ++var preincrement The expression (++var) increments var by 1 and evaluates to the new value in var after the increment. var++ postincrement The expression (var++) evaluates to the original value in var and increments var by 1. --var predecrement The expression (--var) decrements var by 1 and evaluates to the new value in var after the decrement. var-- postdecrement The expression (var--) evaluates to the original value in var and decrements var by 1. 28 © University of Sulaimani, Faculty of Physical Basic Education, Department of Computer Science 2014 / 2015
  • 29. Increment and Decrement Operators, cont. int i = 10; int newNum = 10 * i++; int newNum = 10 * i; i = i + 1; Same effect as int i = 10; int newNum = 10 * (++i); i = i + 1; int newNum = 10 * i; Same effect as 29 © University of Sulaimani, Faculty of Physical Basic Education, Department of Computer Science 2014 / 2015
  • 30. 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. 30 © University of Sulaimani, Faculty of Physical Basic Education, Department of Computer Science 2014 / 2015
  • 31. Assignment Expressions and Assignment Statements Prior to Java 2, all the expressions can be used as statements. Since Java 2, only the following types of expressions can be statements: variable op= expression; // Where op is +, -, *, /, or % ++variable; variable++; --variable; variable--; 31 © University of Sulaimani, Faculty of Physical Basic Education, Department of Computer Science 2014 / 2015
  • 32. Numeric Type Conversion Consider the following statements: byte i = 100; long k = i * 3 + 4; double d = i * 3.1 + k / 2; 32 © University of Sulaimani, Faculty of Physical Basic Education, Department of Computer Science 2014 / 2015
  • 33. 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. 33 © University of Sulaimani, Faculty of Physical Basic Education, Department of Computer Science 2014 / 2015
  • 34. 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? int x = 5 / 2.0; range increases byte, short, int, long, float, double 34 © University of Sulaimani, Faculty of Physical Basic Education, Department of Computer Science 2014 / 2015
  • 35. Character Data Type Four hexadecimal digits. char letter = 'A'; (ASCII) char numChar = '4'; (ASCII) 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); 35 © University of Sulaimani, Faculty of Physical Basic Education, Department of Computer Science 2014 / 2015
  • 36. Unicode Format Java characters use Unicode, a 16-bit encoding scheme established by the Unicode Consortium to support the interchange, processing, and display of written texts in the world’s diverse languages. Unicode takes two bytes, preceded by u, expressed in four hexadecimal numbers that run from 'u0000' to 'uFFFF'. So, Unicode can represent 65535 + 1 characters. Unicode u03b1 u03b2 u03b3 for three Greek letters 36 © University of Sulaimani, Faculty of Physical Basic Education, Department of Computer Science 2014 / 2015
  • 37. 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 37 © University of Sulaimani, Faculty of Physical Basic Education, Department of Computer Science 2014 / 2015
  • 38. Appendix B: ASCII Character Set ASCII Character Set is a subset of the Unicode from u0000 to u007f 38 © University of Sulaimani, Faculty of Physical Basic Education, Department of Computer Science 2014 / 2015
  • 39. ASCII Character Set, cont. ASCII Character Set is a subset of the Unicode from u0000 to u007f 39 © University of Sulaimani, Faculty of Physical Basic Education, Department of Computer Science 2014 / 2015
  • 40. Casting between char and Numeric Types int i = 'a'; // Same as int i = (int)'a'; char c = 97; // Same as char c = (char)97; 40 © University of Sulaimani, Faculty of Physical Basic Education, Department of Computer Science 2014 / 2015
  • 41. Problem: Monetary Units This program lets the user enter the amount in decimal representing dollars and cents and output a report listing the monetary equivalent in single dollars, quarters, dimes, nickels, and pennies. Your program should report maximum number of dollars, then the maximum number of quarters, and so on, in this order. 41 © University of Sulaimani, Faculty of Physical Basic Education, Department of Computer Science 2014 / 2015
  • 42. Trace ComputeChange int remainingAmount = (int)(amount * 100); // Find the number of one dollars int numberOfOneDollars = remainingAmount / 100; remainingAmount = remainingAmount % 100; // Find the number of quarters in the remaining amount int numberOfQuarters = remainingAmount / 25; remainingAmount = remainingAmount % 25; // Find the number of dimes in the remaining amount int numberOfDimes = remainingAmount / 10; remainingAmount = remainingAmount % 10; // Find the number of nickels in the remaining amount int numberOfNickels = remainingAmount / 5; remainingAmount = remainingAmount % 5; // Find the number of pennies in the remaining amount int numberOfPennies = remainingAmount; remainingAmount 1156 remainingAmount initialized Suppose amount is 11.56 42 © University of Sulaimani, Faculty of Physical Basic Education, Department of Computer Science 2014 / 2015
  • 43. Trace ComputeChange int remainingAmount = (int)(amount * 100); // Find the number of one dollars int numberOfOneDollars = remainingAmount / 100; remainingAmount = remainingAmount % 100; // Find the number of quarters in the remaining amount int numberOfQuarters = remainingAmount / 25; remainingAmount = remainingAmount % 25; // Find the number of dimes in the remaining amount int numberOfDimes = remainingAmount / 10; remainingAmount = remainingAmount % 10; // Find the number of nickels in the remaining amount int numberOfNickels = remainingAmount / 5; remainingAmount = remainingAmount % 5; // Find the number of pennies in the remaining amount int numberOfPennies = remainingAmount; remainingAmount 1156 Suppose amount is 11.56 numberOfOneDollars 11 numberOfOneDollars assigned 43 © University of Sulaimani, Faculty of Physical Basic Education, Department of Computer Science 2014 / 2015
  • 44. Trace ComputeChange int remainingAmount = (int)(amount * 100); // Find the number of one dollars int numberOfOneDollars = remainingAmount / 100; remainingAmount = remainingAmount % 100; // Find the number of quarters in the remaining amount int numberOfQuarters = remainingAmount / 25; remainingAmount = remainingAmount % 25; // Find the number of dimes in the remaining amount int numberOfDimes = remainingAmount / 10; remainingAmount = remainingAmount % 10; // Find the number of nickels in the remaining amount int numberOfNickels = remainingAmount / 5; remainingAmount = remainingAmount % 5; // Find the number of pennies in the remaining amount int numberOfPennies = remainingAmount; remainingAmount 56 Suppose amount is 11.56 numberOfOneDollars 11 remainingAmount updated 44 © University of Sulaimani, Faculty of Physical Basic Education, Department of Computer Science 2014 / 2015
  • 45. Trace ComputeChange int remainingAmount = (int)(amount * 100); // Find the number of one dollars int numberOfOneDollars = remainingAmount / 100; remainingAmount = remainingAmount % 100; // Find the number of quarters in the remaining amount int numberOfQuarters = remainingAmount / 25; remainingAmount = remainingAmount % 25; // Find the number of dimes in the remaining amount int numberOfDimes = remainingAmount / 10; remainingAmount = remainingAmount % 10; // Find the number of nickels in the remaining amount int numberOfNickels = remainingAmount / 5; remainingAmount = remainingAmount % 5; // Find the number of pennies in the remaining amount int numberOfPennies = remainingAmount; remainingAmount 56 Suppose amount is 11.56 numberOfOneDollars 11 numberOfOneQuarters 2 numberOfOneQuarters assigned 45 © University of Sulaimani, Faculty of Physical Basic Education, Department of Computer Science 2014 / 2015
  • 46. Trace ComputeChange int remainingAmount = (int)(amount * 100); // Find the number of one dollars int numberOfOneDollars = remainingAmount / 100; remainingAmount = remainingAmount % 100; // Find the number of quarters in the remaining amount int numberOfQuarters = remainingAmount / 25; remainingAmount = remainingAmount % 25; // Find the number of dimes in the remaining amount int numberOfDimes = remainingAmount / 10; remainingAmount = remainingAmount % 10; // Find the number of nickels in the remaining amount int numberOfNickels = remainingAmount / 5; remainingAmount = remainingAmount % 5; // Find the number of pennies in the remaining amount int numberOfPennies = remainingAmount; remainingAmount 6 Suppose amount is 11.56 numberOfOneDollars 11 numberOfQuarters 2 remainingAmount updated 46 © University of Sulaimani, Faculty of Physical Basic Education, Department of Computer Science 2014 / 2015
  • 47. The String Type The char type only represents one character. To represent a string of characters, use the data type called String. For example, String message = Welcome to Java; String is actually a predefined class in the Java library just like the System class and JOptionPane class. The String type is not a primitive type. It is known as a reference type. Any Java class can be used as a reference type for a variable. Note: For the time being, you just need to know how to declare a String variable, how to assign a string to the variable, and how to concatenate strings. 47 © University of Sulaimani, Faculty of Physical Basic Education, Department of Computer Science 2014 / 2015
  • 48. String Concatenation // Three strings are concatenated String message = Welcome + to + Java; // String Chapter is concatenated with number 2 String s = Chapter + 2; // s becomes Chapter2 // String Supplement is concatenated with character B String s1 = Supplement + 'B'; // s1 becomes SupplementB 48 © University of Sulaimani, Faculty of Physical Basic Education, Department of Computer Science 2014 / 2015
  • 49. Programming Style and Documentation Appropriate Comments Naming Conventions Proper Indentation and Spacing Lines Block Styles 49 © University of Sulaimani, Faculty of Physical Basic Education, Department of Computer Science 2014 / 2015
  • 50. Appropriate Comments Include a summary at the beginning of the program to explain what the program does, its key features, its supporting data structures, and any unique techniques it uses. Include your name, ccllaassss sseeccttiioonn,, iinnssttrruuccttoorr,, ddaattee,, aanndd aa bbrriieeff ddeessccrriippttiioonn aatt tthhee bbeeggiinnnniinngg ooff tthhee pprrooggrraamm.. 50 © University of Sulaimani, Faculty of Physical Basic Education, Department of Computer Science 2014 / 2015
  • 51. Naming Conventions, cont. Class names: – Capitalize the first letter of each word in the name. For example, the class name ComputeArea. Constants: – Capitalize all letters in constants, and use underscores to connect words. For example, the constant PI and MAX_VALUE 51 © University of Sulaimani, Faculty of Physical Basic Education, Department of Computer Science 2014 / 2015
  • 52. Proper Indentation and Spacing Indentation – Indent two spaces. Spacing – Use blank line to separate segments of the code. 52 © University of Sulaimani, Faculty of Physical Basic Education, Department of Computer Science 2014 / 2015
  • 53. Block Styles Use end-of-line style for braces. public class Test { public static void main(String[] args) { System.out.println(Block Styles); } } public class Test { public static void main(String[] args) { System.out.println(Block Styles); } } End-of-line style Next-line style 53 © University of Sulaimani, Faculty of Physical Basic Education, Department of Computer Science 2014 / 2015
  • 54. Programming Errors Syntax Errors – Detected by the compiler Runtime Errors – Causes the program to abort Logic Errors – Produces incorrect result 54 © University of Sulaimani, Faculty of Physical Basic Education, Department of Computer Science 2014 / 2015
  • 55. Syntax Errors public class ShowSyntaxErrors { public static void main(String[] args) { i = 30; System.out.println(i + 4); } } 55 © University of Sulaimani, Faculty of Physical Basic Education, Department of Computer Science 2014 / 2015
  • 56. Runtime Errors public class ShowRuntimeErrors { public static void main(String[] args) { int i = 1 / 0; } } 56 © University of Sulaimani, Faculty of Physical Basic Education, Department of Computer Science 2014 / 2015
  • 57. Logic Errors public class ShowLogicErrors { //// DDeetteerrmmiinnee iiff aa nnuummbbeerr iiss bbeettwweeeenn 11 aanndd 110000 iinncclluussiivveellyy public static void main(String[] args) { // Prompt the user to enter a number String input = JOptionPane.showInputDialog(null, Please enter an integer:, ShowLogicErrors, JOptionPane.QUESTION_MESSAGE); int number = Integer.parseInt(input); // Display the result System.out.println(The number is between 1 and 100, + inclusively? + ((11 nnuummbbeerr) (number 100))); System.exit(0); } } 57 © University of Sulaimani, Faculty of Physical Basic Education, Department of Computer Science 2014 / 2015
  • 58. Debugging Logic errors are called bugs. TThhee pprroocceessss ooff ffiinnddiinngg aanndd ccoorrrreeccttiinngg eerrrroorrss iiss ccaalllleedd ddeebbuuggggiinngg.. A common approach to debugging is to use a combination of methods to narrow down to the part of the program where the bug is located. You can hand-trace the program (i.e., catch errors by reading the program), or you can insert print statements in order to show the values of the variables or the execution flow of the program. This approach might work for a short, simple program. But for a large, complex program, the most effective approach for debugging is to use a ddeebbuuggggeerr uuttiilliittyy.. 58 © University of Sulaimani, Faculty of Physical Basic Education, Department of Computer Science 2014 / 2015
  • 59. Debugger Debugger is a program that facilitates debugging. You can use a debugger to Execute a single statement at a time. Trace into or stepping over a method. Set breakpoints. Display variables. Display call stack. Modify variables. 59 © University of Sulaimani, Faculty of Physical Basic Education, Department of Computer Science 2014 / 2015
  • 60. JOptionPane Input This slide provides two ways of obtaining input. 1. Using the Scanner class (console input) 2. Using JOptionPane input dialogs 60 © University of Sulaimani, Faculty of Physical Basic Education, Department of Computer Science 2014 / 2015
  • 61. Getting Input from Input Dialog Boxes String input = JOptionPane.showInputDialog( Enter an input); 61 © University of Sulaimani, Faculty of Physical Basic Education, Department of Computer Science 2014 / 2015
  • 62. Getting Input from Input Dialog Boxes String string = JOptionPane.showInputDialog( null, “Prompting Message”, “Dialog Title”, JOptionPane.QUESTION_MESSAGE); 62 © University of Sulaimani, Faculty of Physical Basic Education, Department of Computer Science 2014 / 2015
  • 63. Two Ways to Invoke the Method There are several ways to use the showInputDialog method. For the time being, you only need to know two ways to invoke it. One is to use a statement as shown in the example: String string = JOptionPane.showInputDialog(null, x, y, JOptionPane.QUESTION_MESSAGE); where x is a string for the prompting message, and y is a string for the title of the input dialog box. The other is to use a statement like this: JOptionPane.showInputDialog(x); where x is a string for the prompting message. 63 © University of Sulaimani, Faculty of Physical Basic Education, Department of Computer Science 2014 / 2015
  • 64. Converting Strings to Integers The input returned from the input dialog box is a string. If you enter a numeric value such as 123, it returns “123”. To obtain the input as a number, you have to convert a string into a number. To convert a string into an int value, you can use the static parseInt method in the Integer class as follows: int intValue = Integer.parseInt(intString); where intString is a numeric string such as “123”. 64 © University of Sulaimani, Faculty of Physical Basic Education, Department of Computer Science 2014 / 2015
  • 65. Converting Strings to Doubles To convert a string into a double value, you can use the static parseDouble method in the Double class as follows: double doubleValue =Double.parseDouble(doubleString); where doubleString is a numeric string such as “123.45”. 65 © University of Sulaimani, Faculty of Physical Basic Education, Department of Computer Science 2014 / 2015