SlideShare a Scribd company logo
1 of 65
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

A4. What about other religions?
A4. What about other religions?A4. What about other religions?
A4. What about other religions?Tony Watkins
 
Digging into the Deep Web
Digging into the Deep WebDigging into the Deep Web
Digging into the Deep WebWendy DeGroat
 
Power Point Lesson 07 P1
Power Point  Lesson 07  P1Power Point  Lesson 07  P1
Power Point Lesson 07 P1Nasir Jumani
 
How the Internet works...and why
How the Internet works...and whyHow the Internet works...and why
How the Internet works...and whyAPNIC
 
Setting standards-friendly web type
Setting standards-friendly web typeSetting standards-friendly web type
Setting standards-friendly web typePascal Klein
 
Asia Pacific Internet Leadership Program
Asia Pacific Internet Leadership ProgramAsia Pacific Internet Leadership Program
Asia Pacific Internet Leadership ProgramAPNIC
 
Chapter2 computer
Chapter2 computerChapter2 computer
Chapter2 computermerihan90
 
World Geography: Sample PowerPoint
World Geography: Sample PowerPointWorld Geography: Sample PowerPoint
World Geography: Sample PowerPointJulia Hemmings
 
Akram Atallah Presentation from Middle East DNS Forum
Akram Atallah Presentation from Middle East DNS ForumAkram Atallah Presentation from Middle East DNS Forum
Akram Atallah Presentation from Middle East DNS ForumICANN
 
Internet an how it works
Internet an how it worksInternet an how it works
Internet an how it worksshahnaz10
 
Infobrokering And Searching The Deep Web
Infobrokering And Searching The Deep WebInfobrokering And Searching The Deep Web
Infobrokering And Searching The Deep WebWitold Kozakiewicz
 
Introduction to network ( Internet and its layer) Or how internet really works!
Introduction to network ( Internet and its layer) Or how internet really works!Introduction to network ( Internet and its layer) Or how internet really works!
Introduction to network ( Internet and its layer) Or how internet really works!Mohammad kermani
 
A brief history of home computer technology
A brief history of home computer technologyA brief history of home computer technology
A brief history of home computer technologyvenusanderson225
 
E-COMMERCE: The Dark Web
E-COMMERCE: The Dark Web E-COMMERCE: The Dark Web
E-COMMERCE: The Dark Web rardthebeast
 
Power Point Lesson 08 P2
Power Point Lesson 08 P2Power Point Lesson 08 P2
Power Point Lesson 08 P2Nasir Jumani
 
Making domain name and IP address policy at ICANN
Making domain name and IP address policy at ICANNMaking domain name and IP address policy at ICANN
Making domain name and IP address policy at ICANNStephane Van Gelder
 
ICANN Rules vs Privacy
ICANN Rules vs PrivacyICANN Rules vs Privacy
ICANN Rules vs PrivacyBlacknight
 

Viewers also liked (20)

A4. What about other religions?
A4. What about other religions?A4. What about other religions?
A4. What about other religions?
 
Digging into the Deep Web
Digging into the Deep WebDigging into the Deep Web
Digging into the Deep Web
 
Power Point Lesson 07 P1
Power Point  Lesson 07  P1Power Point  Lesson 07  P1
Power Point Lesson 07 P1
 
How the Internet works...and why
How the Internet works...and whyHow the Internet works...and why
How the Internet works...and why
 
Setting standards-friendly web type
Setting standards-friendly web typeSetting standards-friendly web type
Setting standards-friendly web type
 
Asia Pacific Internet Leadership Program
Asia Pacific Internet Leadership ProgramAsia Pacific Internet Leadership Program
Asia Pacific Internet Leadership Program
 
Chapter2 computer
Chapter2 computerChapter2 computer
Chapter2 computer
 
W 10 introduction to network
W 10 introduction to networkW 10 introduction to network
W 10 introduction to network
 
World Geography: Sample PowerPoint
World Geography: Sample PowerPointWorld Geography: Sample PowerPoint
World Geography: Sample PowerPoint
 
Akram Atallah Presentation from Middle East DNS Forum
Akram Atallah Presentation from Middle East DNS ForumAkram Atallah Presentation from Middle East DNS Forum
Akram Atallah Presentation from Middle East DNS Forum
 
Internet an how it works
Internet an how it worksInternet an how it works
Internet an how it works
 
Infobrokering And Searching The Deep Web
Infobrokering And Searching The Deep WebInfobrokering And Searching The Deep Web
Infobrokering And Searching The Deep Web
 
Introduction to network ( Internet and its layer) Or how internet really works!
Introduction to network ( Internet and its layer) Or how internet really works!Introduction to network ( Internet and its layer) Or how internet really works!
Introduction to network ( Internet and its layer) Or how internet really works!
 
A brief history of home computer technology
A brief history of home computer technologyA brief history of home computer technology
A brief history of home computer technology
 
E-COMMERCE: The Dark Web
E-COMMERCE: The Dark Web E-COMMERCE: The Dark Web
E-COMMERCE: The Dark Web
 
Power Point Lesson 08 P2
Power Point Lesson 08 P2Power Point Lesson 08 P2
Power Point Lesson 08 P2
 
Internet servers
Internet serversInternet servers
Internet servers
 
Brief History of the PC
Brief History of the PCBrief History of the PC
Brief History of the PC
 
Making domain name and IP address policy at ICANN
Making domain name and IP address policy at ICANNMaking domain name and IP address policy at ICANN
Making domain name and IP address policy at ICANN
 
ICANN Rules vs Privacy
ICANN Rules vs PrivacyICANN Rules vs Privacy
ICANN Rules vs Privacy
 

Similar to Java programming: Elementary programming

Java programming: Elementary practice
Java programming: Elementary practiceJava programming: Elementary practice
Java programming: Elementary practiceKarwan Mustafa Kareem
 
Java™ (OOP) - Chapter 2: "Elementary Programming"
Java™ (OOP) - Chapter 2: "Elementary Programming"Java™ (OOP) - Chapter 2: "Elementary Programming"
Java™ (OOP) - Chapter 2: "Elementary Programming"Gouda Mando
 
Primitive Data Types and Operations
Primitive Data Types and OperationsPrimitive Data Types and Operations
Primitive Data Types and Operationsnaimanighat
 
CSE215_Module_02_Elementary_Programming.ppt
CSE215_Module_02_Elementary_Programming.pptCSE215_Module_02_Elementary_Programming.ppt
CSE215_Module_02_Elementary_Programming.pptRashedurRahman18
 
Introduction to Java Programming Language
Introduction to Java Programming Language Introduction to Java Programming Language
Introduction to Java Programming Language Karwan Mustafa Kareem
 
02slidLarge value of face area Large value of face area
02slidLarge value of face area Large value of face area02slidLarge value of face area Large value of face area
02slidLarge value of face area Large value of face areaAhmadHashlamon
 
IRJET- College Campus Event Management System
IRJET- College Campus Event Management SystemIRJET- College Campus Event Management System
IRJET- College Campus Event Management SystemIRJET Journal
 
Unit3 overview of_c_programming
Unit3 overview of_c_programmingUnit3 overview of_c_programming
Unit3 overview of_c_programmingCapuchino HuiNing
 
IRJET - Virtual Lab: Keep Away Physically but Not Technically
IRJET - Virtual Lab: Keep Away Physically but Not TechnicallyIRJET - Virtual Lab: Keep Away Physically but Not Technically
IRJET - Virtual Lab: Keep Away Physically but Not TechnicallyIRJET Journal
 
Online_Examination
Online_ExaminationOnline_Examination
Online_ExaminationRupam Dey
 
IRJET- Course outcome Attainment Estimation System
IRJET-  	  Course outcome Attainment Estimation SystemIRJET-  	  Course outcome Attainment Estimation System
IRJET- Course outcome Attainment Estimation SystemIRJET Journal
 
IRJET- Automation Software for Student Monitoring System
IRJET-  	  Automation Software for Student Monitoring SystemIRJET-  	  Automation Software for Student Monitoring System
IRJET- Automation Software for Student Monitoring SystemIRJET Journal
 
Scheme g third semester (co,cm,cd,if, cw)
Scheme   g third semester (co,cm,cd,if, cw)Scheme   g third semester (co,cm,cd,if, cw)
Scheme g third semester (co,cm,cd,if, cw)anita bodke
 
Te computer syllabus 2015 course 3-4-17 3-5-17
Te computer syllabus 2015 course 3-4-17 3-5-17Te computer syllabus 2015 course 3-4-17 3-5-17
Te computer syllabus 2015 course 3-4-17 3-5-17VishalButkar2
 
Ada lab manual
Ada lab manualAda lab manual
Ada lab manualaman713418
 
IRJET- Rainfall Prediction by using Time-Series Data in Analysis of Artif...
IRJET-  	  Rainfall Prediction by using Time-Series Data in Analysis of Artif...IRJET-  	  Rainfall Prediction by using Time-Series Data in Analysis of Artif...
IRJET- Rainfall Prediction by using Time-Series Data in Analysis of Artif...IRJET Journal
 
2. data types, variables and operators
2. data types, variables and operators2. data types, variables and operators
2. data types, variables and operatorsPhD Research Scholar
 
IRJET- Monument Informatica Application using AR
IRJET-  	  Monument Informatica Application using ARIRJET-  	  Monument Informatica Application using AR
IRJET- Monument Informatica Application using ARIRJET Journal
 

Similar to Java programming: Elementary programming (20)

Java programming: Elementary practice
Java programming: Elementary practiceJava programming: Elementary practice
Java programming: Elementary practice
 
Java™ (OOP) - Chapter 2: "Elementary Programming"
Java™ (OOP) - Chapter 2: "Elementary Programming"Java™ (OOP) - Chapter 2: "Elementary Programming"
Java™ (OOP) - Chapter 2: "Elementary Programming"
 
Primitive Data Types and Operations
Primitive Data Types and OperationsPrimitive Data Types and Operations
Primitive Data Types and Operations
 
CSE215_Module_02_Elementary_Programming.ppt
CSE215_Module_02_Elementary_Programming.pptCSE215_Module_02_Elementary_Programming.ppt
CSE215_Module_02_Elementary_Programming.ppt
 
BIT211_2.pdf
BIT211_2.pdfBIT211_2.pdf
BIT211_2.pdf
 
Introduction to Java Programming Language
Introduction to Java Programming Language Introduction to Java Programming Language
Introduction to Java Programming Language
 
02slidLarge value of face area Large value of face area
02slidLarge value of face area Large value of face area02slidLarge value of face area Large value of face area
02slidLarge value of face area Large value of face area
 
IRJET- College Campus Event Management System
IRJET- College Campus Event Management SystemIRJET- College Campus Event Management System
IRJET- College Campus Event Management System
 
Unit3 overview of_c_programming
Unit3 overview of_c_programmingUnit3 overview of_c_programming
Unit3 overview of_c_programming
 
IRJET - Virtual Lab: Keep Away Physically but Not Technically
IRJET - Virtual Lab: Keep Away Physically but Not TechnicallyIRJET - Virtual Lab: Keep Away Physically but Not Technically
IRJET - Virtual Lab: Keep Away Physically but Not Technically
 
Online_Examination
Online_ExaminationOnline_Examination
Online_Examination
 
IRJET- Course outcome Attainment Estimation System
IRJET-  	  Course outcome Attainment Estimation SystemIRJET-  	  Course outcome Attainment Estimation System
IRJET- Course outcome Attainment Estimation System
 
IRJET- Automation Software for Student Monitoring System
IRJET-  	  Automation Software for Student Monitoring SystemIRJET-  	  Automation Software for Student Monitoring System
IRJET- Automation Software for Student Monitoring System
 
Scheme g third semester (co,cm,cd,if, cw)
Scheme   g third semester (co,cm,cd,if, cw)Scheme   g third semester (co,cm,cd,if, cw)
Scheme g third semester (co,cm,cd,if, cw)
 
Te computer syllabus 2015 course 3-4-17 3-5-17
Te computer syllabus 2015 course 3-4-17 3-5-17Te computer syllabus 2015 course 3-4-17 3-5-17
Te computer syllabus 2015 course 3-4-17 3-5-17
 
Ada lab manual
Ada lab manualAda lab manual
Ada lab manual
 
IRJET- Rainfall Prediction by using Time-Series Data in Analysis of Artif...
IRJET-  	  Rainfall Prediction by using Time-Series Data in Analysis of Artif...IRJET-  	  Rainfall Prediction by using Time-Series Data in Analysis of Artif...
IRJET- Rainfall Prediction by using Time-Series Data in Analysis of Artif...
 
2. data types, variables and operators
2. data types, variables and operators2. data types, variables and operators
2. data types, variables and operators
 
1. basics of python
1. basics of python1. basics of python
1. basics of python
 
IRJET- Monument Informatica Application using AR
IRJET-  	  Monument Informatica Application using ARIRJET-  	  Monument Informatica Application using AR
IRJET- Monument Informatica Application using AR
 

More from Karwan Mustafa Kareem

More from Karwan Mustafa Kareem (6)

Computer and network security
Computer and network securityComputer and network security
Computer and network security
 
Java Programming: Loops
Java Programming: LoopsJava Programming: Loops
Java Programming: Loops
 
Java Programmin: Selections
Java Programmin: SelectionsJava Programmin: Selections
Java Programmin: Selections
 
Cryptography
Cryptography Cryptography
Cryptography
 
MySQL Database with phpMyAdmin
MySQL Database with  phpMyAdminMySQL Database with  phpMyAdmin
MySQL Database with phpMyAdmin
 
Database Application with MySQL
Database Application with MySQL   Database Application with MySQL
Database Application with MySQL
 

Recently uploaded

APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April  Automation LPDGAPIForce Zurich 5 April  Automation LPDG
APIForce Zurich 5 April Automation LPDGMarianaLemus7
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxnull - The Open Security Community
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Science&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdfScience&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdfjimielynbastida
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr LapshynFwdays
 
costume and set research powerpoint presentation
costume and set research powerpoint presentationcostume and set research powerpoint presentation
costume and set research powerpoint presentationphoebematthew05
 
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024BookNet Canada
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsSnow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsHyundai Motor Group
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 

Recently uploaded (20)

APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April  Automation LPDGAPIForce Zurich 5 April  Automation LPDG
APIForce Zurich 5 April Automation LPDG
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Science&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdfScience&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdf
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
 
costume and set research powerpoint presentation
costume and set research powerpoint presentationcostume and set research powerpoint presentation
costume and set research powerpoint presentation
 
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsSnow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
 
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptxVulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 

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