3. s/e with control structures 3.1 relational operators and expressions 3.2 if and if-else...
TRANSCRIPT
![Page 1: 3. S/E with Control Structures 3.1 Relational Operators and Expressions 3.2 If and if-else Statements 3.3 The Type Double 3.4 Program Design with the While](https://reader035.vdocuments.us/reader035/viewer/2022062803/56649c7e5503460f94934332/html5/thumbnails/1.jpg)
3. S/E with Control Structures
• 3.1 Relational Operators and Expressions
• 3.2 If and if-else Statements
• 3.3 The Type Double
• 3.4 Program Design with the While Loop
• 3.5 Debugging
• 3.6 Getting Started with Objects and
Applets: Drawing Shapes
![Page 2: 3. S/E with Control Structures 3.1 Relational Operators and Expressions 3.2 If and if-else Statements 3.3 The Type Double 3.4 Program Design with the While](https://reader035.vdocuments.us/reader035/viewer/2022062803/56649c7e5503460f94934332/html5/thumbnails/2.jpg)
Objectives
• Learn the basic sequence, selection, and repetition statements
• Identify objects and their responsibilities• Simple debugging techniques• Handle floating-point numbers• Study applets, draw various shapes
![Page 3: 3. S/E with Control Structures 3.1 Relational Operators and Expressions 3.2 If and if-else Statements 3.3 The Type Double 3.4 Program Design with the While](https://reader035.vdocuments.us/reader035/viewer/2022062803/56649c7e5503460f94934332/html5/thumbnails/3.jpg)
3.1 Relational Operators and Expressions
• Relational operators include:
<, <=, >, >=, ==, and !=• Each relational operator takes two operands and
gives a boolean value: true or false• Be careful not to confuse == with =• Relational operators have precedence lower than
arithmetic operators but higher than assignment operators
![Page 4: 3. S/E with Control Structures 3.1 Relational Operators and Expressions 3.2 If and if-else Statements 3.3 The Type Double 3.4 Program Design with the While](https://reader035.vdocuments.us/reader035/viewer/2022062803/56649c7e5503460f94934332/html5/thumbnails/4.jpg)
Figure 3.2 Java relational and equality operators
is true292 != 377not equal to !=
is false 9 == 12 + 12equal to==
is false 9 >= 99greater than or equal to
>=
is false-98 > -12greater than>
is true464 <= 7213less than or equal to<=
is false31 < 25less than<
ExampleMeaningOperator Symbol
![Page 5: 3. S/E with Control Structures 3.1 Relational Operators and Expressions 3.2 If and if-else Statements 3.3 The Type Double 3.4 Program Design with the While](https://reader035.vdocuments.us/reader035/viewer/2022062803/56649c7e5503460f94934332/html5/thumbnails/5.jpg)
Control Flow
• The order Java executes the statements of a program is sequential if not told otherwise
int item1 = 25;
int item2 = 12;
item2 = item1 + 15;
• Conditional statement like the if and if-else statements allow us to make decision
• They change the default control flow
![Page 6: 3. S/E with Control Structures 3.1 Relational Operators and Expressions 3.2 If and if-else Statements 3.3 The Type Double 3.4 Program Design with the While](https://reader035.vdocuments.us/reader035/viewer/2022062803/56649c7e5503460f94934332/html5/thumbnails/6.jpg)
Figure 3.3 The sequence control flow
Entry
int item1 = 25;
int item2 = 12;
Item2 = item1+15;
Exit
![Page 7: 3. S/E with Control Structures 3.1 Relational Operators and Expressions 3.2 If and if-else Statements 3.3 The Type Double 3.4 Program Design with the While](https://reader035.vdocuments.us/reader035/viewer/2022062803/56649c7e5503460f94934332/html5/thumbnails/7.jpg)
3.2 The if and if-else statements• The syntax
if ( condition )if_true_statement;
[ elseif_false_statement; ]
• condition must be boolean: true or false• If condition is true, if_true_statement is executed;
if the condition is false, if_false_statement is executed
• One or the other will be executed, but not both
![Page 8: 3. S/E with Control Structures 3.1 Relational Operators and Expressions 3.2 If and if-else Statements 3.3 The Type Double 3.4 Program Design with the While](https://reader035.vdocuments.us/reader035/viewer/2022062803/56649c7e5503460f94934332/html5/thumbnails/8.jpg)
Figure 3.4 Control flow for the if statement
condition
False
if_true_statement
![Page 9: 3. S/E with Control Structures 3.1 Relational Operators and Expressions 3.2 If and if-else Statements 3.3 The Type Double 3.4 Program Design with the While](https://reader035.vdocuments.us/reader035/viewer/2022062803/56649c7e5503460f94934332/html5/thumbnails/9.jpg)
The if Statement: Example
hours = Integer.parseInt(input);
if (hours > 40)
System.out.println(“You worked overtime “ +
“this week”);
System.out.println(“You worked “ + hours +
“ hours”);
![Page 10: 3. S/E with Control Structures 3.1 Relational Operators and Expressions 3.2 If and if-else Statements 3.3 The Type Double 3.4 Program Design with the While](https://reader035.vdocuments.us/reader035/viewer/2022062803/56649c7e5503460f94934332/html5/thumbnails/10.jpg)
Figure 3.5 Control Flow for Example 3.2
hours = Integer.parselnt(input);
Hours>40
System.out.println(
“you worked ”
+ hours + “ hours”);
FalseSystem.out.println(“You “ + “worked overtime this week”)
True
![Page 11: 3. S/E with Control Structures 3.1 Relational Operators and Expressions 3.2 If and if-else Statements 3.3 The Type Double 3.4 Program Design with the While](https://reader035.vdocuments.us/reader035/viewer/2022062803/56649c7e5503460f94934332/html5/thumbnails/11.jpg)
Figure 3.6 Flow chart for the if-else statement
Condition
if_true_statement if_false_statement
True False
![Page 12: 3. S/E with Control Structures 3.1 Relational Operators and Expressions 3.2 If and if-else Statements 3.3 The Type Double 3.4 Program Design with the While](https://reader035.vdocuments.us/reader035/viewer/2022062803/56649c7e5503460f94934332/html5/thumbnails/12.jpg)
The if-else Statement: Example
if (hours <= 40)
wage = hourlyRate * hours;
else
wage = hourlyRate * 40 +
hourlyRate * 1.5 * (hours - 40);
![Page 13: 3. S/E with Control Structures 3.1 Relational Operators and Expressions 3.2 If and if-else Statements 3.3 The Type Double 3.4 Program Design with the While](https://reader035.vdocuments.us/reader035/viewer/2022062803/56649c7e5503460f94934332/html5/thumbnails/13.jpg)
Block Statements
• Several statements can be grouped together into a block statement
• A block is delimited by braces ( { … } )• A block statement can be used wherever a
statement is called for in the Java syntax• For example, in an if-else statement, the if-portion,
or the else-portion, or both, could be block statements
![Page 14: 3. S/E with Control Structures 3.1 Relational Operators and Expressions 3.2 If and if-else Statements 3.3 The Type Double 3.4 Program Design with the While](https://reader035.vdocuments.us/reader035/viewer/2022062803/56649c7e5503460f94934332/html5/thumbnails/14.jpg)
Figure 3.7 Flow chart for if statement with block, step 1
Z <= 10
True
Falsex = 2; y = 7;
![Page 15: 3. S/E with Control Structures 3.1 Relational Operators and Expressions 3.2 If and if-else Statements 3.3 The Type Double 3.4 Program Design with the While](https://reader035.vdocuments.us/reader035/viewer/2022062803/56649c7e5503460f94934332/html5/thumbnails/15.jpg)
Figure 3.8 Flow chart if statement with block, step 2
Z <= 10
x = 2;
True
False y = 7;
![Page 16: 3. S/E with Control Structures 3.1 Relational Operators and Expressions 3.2 If and if-else Statements 3.3 The Type Double 3.4 Program Design with the While](https://reader035.vdocuments.us/reader035/viewer/2022062803/56649c7e5503460f94934332/html5/thumbnails/16.jpg)
Block Statements• Use a consistent style for blocks
if (x < 10) { y = 5;
z = 8;}
else {
y = 9;
z = -2;}
if (x < 10){ y = 5; z = 8;}else{ y = 9; z = -2;}
![Page 17: 3. S/E with Control Structures 3.1 Relational Operators and Expressions 3.2 If and if-else Statements 3.3 The Type Double 3.4 Program Design with the While](https://reader035.vdocuments.us/reader035/viewer/2022062803/56649c7e5503460f94934332/html5/thumbnails/17.jpg)
3.3 The Type Double• Scientific (floating-point) notation for real
numbers: 123.45 and 0.0012345 can be written respectively as
0.12345E3
0.12345E-2• 0.12345 is the mantissa, 3 and -2 are the
exponents, with the implicit base of 10
• Scientific notation is good for numbers with very small or very large absolute value
• Java has type double that provides 16 decimal digits accurately.
![Page 18: 3. S/E with Control Structures 3.1 Relational Operators and Expressions 3.2 If and if-else Statements 3.3 The Type Double 3.4 Program Design with the While](https://reader035.vdocuments.us/reader035/viewer/2022062803/56649c7e5503460f94934332/html5/thumbnails/18.jpg)
public class Triangle{ private double side1, side2, side3; public Triangle(double a, double b, double c) { side1 = a; side2 = b; side3 = c; } public double circumference() { return side1 + side2 + side3; } public double area() { double s = circumference() / 2.0; return Math.sqrt(s*(s - side1)*(s - side2)*(s - side3)); }}
![Page 19: 3. S/E with Control Structures 3.1 Relational Operators and Expressions 3.2 If and if-else Statements 3.3 The Type Double 3.4 Program Design with the While](https://reader035.vdocuments.us/reader035/viewer/2022062803/56649c7e5503460f94934332/html5/thumbnails/19.jpg)
Double Value Output• When printed using print or println methods of
System.out, Java prints double values using the most convenient format
• Scientific format for numbers greater than 10,000,000 or less than -10,000,000, and for numbers between -.001 and .001.
• Java treats decimal literals as type double• Java does not print trailing zeroes• Type double is accurate to 16 significant digits• The 17th digit may be rounded
![Page 20: 3. S/E with Control Structures 3.1 Relational Operators and Expressions 3.2 If and if-else Statements 3.3 The Type Double 3.4 Program Design with the While](https://reader035.vdocuments.us/reader035/viewer/2022062803/56649c7e5503460f94934332/html5/thumbnails/20.jpg)
Input and Formatted Outputimport javax.swing.*;import java.text.*;…public static void main(String[] args){ NumberFormat nf = NumberFormat.getCurrentcyInstance(); String s = JOptionPane.showInputDialog(“Hours worked? “); double hours = Double.parseDouble(s); JOptionPane.showMessageDialog (null, “Your pay is “ + nf.format(hours * 5.5)); System.exit(0);}
![Page 21: 3. S/E with Control Structures 3.1 Relational Operators and Expressions 3.2 If and if-else Statements 3.3 The Type Double 3.4 Program Design with the While](https://reader035.vdocuments.us/reader035/viewer/2022062803/56649c7e5503460f94934332/html5/thumbnails/21.jpg)
Formatted Output• The NumberFormat class has static methods that
return formatter objectgetCurrencyInstance()getPercentInstance()
• Each formatter object has a method called format that returns a string with the specific information in the appropriate format
• The DecimalFormat class can be used to format a floating point value in generic way
• The DecimalFormat class takes a string that represents a pattern for the formatted number
![Page 22: 3. S/E with Control Structures 3.1 Relational Operators and Expressions 3.2 If and if-else Statements 3.3 The Type Double 3.4 Program Design with the While](https://reader035.vdocuments.us/reader035/viewer/2022062803/56649c7e5503460f94934332/html5/thumbnails/22.jpg)
Data Conversions• Sometimes it is convenient to convert data from one
type to another• Conversion must be handled carefully to avoid
losing information• Widening conversions are safest because they tend
to go from a small data type to a larger one (such as a short to an int)
• Narrowing conversions can lose information because they tend to go from a larger data type to a smaller one (such as an int to a short)
![Page 23: 3. S/E with Control Structures 3.1 Relational Operators and Expressions 3.2 If and if-else Statements 3.3 The Type Double 3.4 Program Design with the While](https://reader035.vdocuments.us/reader035/viewer/2022062803/56649c7e5503460f94934332/html5/thumbnails/23.jpg)
Data Conversions• In Java, data conversions can occur in three ways:
– assignment conversion– arithmetic promotion– casting
• Assignment conversion occurs when a value of one type is assigned to a variable of another type– Only widening conversion can happen via assignment
• Arithmetic promotion happens automatically when operators in expressions converts their operands
• Casting is the most powerful, and dangerous, technique for conversion
result = (float) total / count;
![Page 24: 3. S/E with Control Structures 3.1 Relational Operators and Expressions 3.2 If and if-else Statements 3.3 The Type Double 3.4 Program Design with the While](https://reader035.vdocuments.us/reader035/viewer/2022062803/56649c7e5503460f94934332/html5/thumbnails/24.jpg)
Figure 3.9 Conversion of mixed-mode expression
2.54
2.54
Original expression
After Conversion
+
+
361
361.0
![Page 25: 3. S/E with Control Structures 3.1 Relational Operators and Expressions 3.2 If and if-else Statements 3.3 The Type Double 3.4 Program Design with the While](https://reader035.vdocuments.us/reader035/viewer/2022062803/56649c7e5503460f94934332/html5/thumbnails/25.jpg)
3.4 The While Loop• Repetition statements allow us to execute a
statement multiple times repetitively• They are often referred to as loops• Like if-else statements, they are controlled by
boolean expressions’• Java has three kinds of repetition statements: the
while loop, the do loop, and the for loop• The while loop has this syntax
while ( condition )
while_true_statement;
![Page 26: 3. S/E with Control Structures 3.1 Relational Operators and Expressions 3.2 If and if-else Statements 3.3 The Type Double 3.4 Program Design with the While](https://reader035.vdocuments.us/reader035/viewer/2022062803/56649c7e5503460f94934332/html5/thumbnails/26.jpg)
The While Loop• If the condition is true, the statement is executed• Then the condition is evaluated again• The statement is executed repetitively until the
condition becomes false• If the condition is false initially, then the statement
is never executed• The body of a while loop must eventually make the
condition false• If not, it is an infinite loop, which is a common
logical error unless you are absolutely sure it is not
![Page 27: 3. S/E with Control Structures 3.1 Relational Operators and Expressions 3.2 If and if-else Statements 3.3 The Type Double 3.4 Program Design with the While](https://reader035.vdocuments.us/reader035/viewer/2022062803/56649c7e5503460f94934332/html5/thumbnails/27.jpg)
Figure 3.10 Flow chart for the while loop
Condition
while_true_statementFalse True
![Page 28: 3. S/E with Control Structures 3.1 Relational Operators and Expressions 3.2 If and if-else Statements 3.3 The Type Double 3.4 Program Design with the While](https://reader035.vdocuments.us/reader035/viewer/2022062803/56649c7e5503460f94934332/html5/thumbnails/28.jpg)
Problem Solving• The purpose of writing a program is to solve a
problem• The general steps in problem solving are:
– Understand the problem
– Dissect the problem
– Design a solution
– Consider alternatives to the solution and refine it
– Implement the solution
– Test the solution and fix and problems that exist
![Page 29: 3. S/E with Control Structures 3.1 Relational Operators and Expressions 3.2 If and if-else Statements 3.3 The Type Double 3.4 Program Design with the While](https://reader035.vdocuments.us/reader035/viewer/2022062803/56649c7e5503460f94934332/html5/thumbnails/29.jpg)
Problem Solving• Many software development project failed because
the developers didn’t understand the problems to be solved
• Avoid assumptions and clarify ambiguities• As problems and their solutions becomes larger,
we must organize our development into manageable pieces
• We will dissect our solutions into pieces called classes and objects, taking an object-oriented approach
![Page 30: 3. S/E with Control Structures 3.1 Relational Operators and Expressions 3.2 If and if-else Statements 3.3 The Type Double 3.4 Program Design with the While](https://reader035.vdocuments.us/reader035/viewer/2022062803/56649c7e5503460f94934332/html5/thumbnails/30.jpg)
Program Development• The creation of software involves four basic
activities:– establishing the requirements
– creating a design
– implementing the code
– testing the implementation
• Real development process is much more involved than this, but these four steps are a good starting point
![Page 31: 3. S/E with Control Structures 3.1 Relational Operators and Expressions 3.2 If and if-else Statements 3.3 The Type Double 3.4 Program Design with the While](https://reader035.vdocuments.us/reader035/viewer/2022062803/56649c7e5503460f94934332/html5/thumbnails/31.jpg)
Requirements• Requirements specify the tasks a program must
accomplish (what to do, not how to do it)• They often include description of the user interface• The initial requirements must be critiqued,
modified, and expanded• It is often difficult to establish detailed,
unambiguous, and complete requirements• Careful attention to the requirements can save
significant time and money in the overall project
![Page 32: 3. S/E with Control Structures 3.1 Relational Operators and Expressions 3.2 If and if-else Statements 3.3 The Type Double 3.4 Program Design with the While](https://reader035.vdocuments.us/reader035/viewer/2022062803/56649c7e5503460f94934332/html5/thumbnails/32.jpg)
Design• An algorithm is a step-by-step process for solving
a problem• A program follow one or more algorithms • The design of a program specifies the algorithms
and data needed• In object-oriented development, the design
establishes the classes, their data and methods • The details of a method may be expressed in
pseudocode, which is code-like, but does not necessarily follow any specific syntax
![Page 33: 3. S/E with Control Structures 3.1 Relational Operators and Expressions 3.2 If and if-else Statements 3.3 The Type Double 3.4 Program Design with the While](https://reader035.vdocuments.us/reader035/viewer/2022062803/56649c7e5503460f94934332/html5/thumbnails/33.jpg)
Implementation• Implementation is the process of translating a
design into source code• Most novice programmers think that writing code
is the heart of software development, but it is actually the least creative step
• Almost all important decisions are made during requirements analysis and design
• Implementation should focus on coding details, including guidelines, clarity, maintainability, expandability, and documentation
![Page 34: 3. S/E with Control Structures 3.1 Relational Operators and Expressions 3.2 If and if-else Statements 3.3 The Type Double 3.4 Program Design with the While](https://reader035.vdocuments.us/reader035/viewer/2022062803/56649c7e5503460f94934332/html5/thumbnails/34.jpg)
Testing• A program should be executed multiple times with
various input in an attempt to find errors• Debugging is the process of discovering the cause
of a problem and fix it• Debugging can only indicate the presence of errors
(bugs), but not the absence• Don’t ever think there is only one more bug to fix• tests should focus on design details as well as
overall requirements
![Page 35: 3. S/E with Control Structures 3.1 Relational Operators and Expressions 3.2 If and if-else Statements 3.3 The Type Double 3.4 Program Design with the While](https://reader035.vdocuments.us/reader035/viewer/2022062803/56649c7e5503460f94934332/html5/thumbnails/35.jpg)
Figure 3.11 Pseudocode for the sum of test scores problem
Read the quantity of scores;
while (count < quantity) {
Read the next score;
Add the score to the total so far;
Increment the count of scores;
}
Display the quantity and the total;
![Page 36: 3. S/E with Control Structures 3.1 Relational Operators and Expressions 3.2 If and if-else Statements 3.3 The Type Double 3.4 Program Design with the While](https://reader035.vdocuments.us/reader035/viewer/2022062803/56649c7e5503460f94934332/html5/thumbnails/36.jpg)
3.5 Debugging• Syntax error
– caught by the compiler– easy to fix
• Run-time error– reported at run-time by interpreter– often depending on input and environment– usually cause program to terminate immaturely
• Logical error– program runs but results are wrong– can be very difficult to find and/or fix
• Requirement error– disastrous
![Page 37: 3. S/E with Control Structures 3.1 Relational Operators and Expressions 3.2 If and if-else Statements 3.3 The Type Double 3.4 Program Design with the While](https://reader035.vdocuments.us/reader035/viewer/2022062803/56649c7e5503460f94934332/html5/thumbnails/37.jpg)
3.6 Getting Started with Applets• A java application is a stand-alone program with a
main method• An applet is a Java program that is intended to be
transported over the web and executed using a web browser
• An applet doesn’t have a main method• Instead, there are several special methods that
serve specific purposes• The paint method, for instance, is automatically
executed and is used to draw the applets contents
![Page 38: 3. S/E with Control Structures 3.1 Relational Operators and Expressions 3.2 If and if-else Statements 3.3 The Type Double 3.4 Program Design with the While](https://reader035.vdocuments.us/reader035/viewer/2022062803/56649c7e5503460f94934332/html5/thumbnails/38.jpg)
Drawing Shapes• The paint method accepts a parameter that is an
object of the Graphics class• A Graphics object defines a graphical context on
which we can draw shapes and text• The Graphics class has several methods for
drawing shapes• The class that defines the applet extends the
Applet class• This makes use of inheritance, an object-oriented
concept to be explored later
![Page 39: 3. S/E with Control Structures 3.1 Relational Operators and Expressions 3.2 If and if-else Statements 3.3 The Type Double 3.4 Program Design with the While](https://reader035.vdocuments.us/reader035/viewer/2022062803/56649c7e5503460f94934332/html5/thumbnails/39.jpg)
Figure 3.12 Drawing a line
(70,80)
(130,230)
![Page 40: 3. S/E with Control Structures 3.1 Relational Operators and Expressions 3.2 If and if-else Statements 3.3 The Type Double 3.4 Program Design with the While](https://reader035.vdocuments.us/reader035/viewer/2022062803/56649c7e5503460f94934332/html5/thumbnails/40.jpg)
Figure 3.13 Drawing a rectangle
(50,50) 200
100
![Page 41: 3. S/E with Control Structures 3.1 Relational Operators and Expressions 3.2 If and if-else Statements 3.3 The Type Double 3.4 Program Design with the While](https://reader035.vdocuments.us/reader035/viewer/2022062803/56649c7e5503460f94934332/html5/thumbnails/41.jpg)
Figure 3.14 An oval with its bounding rectangle
![Page 42: 3. S/E with Control Structures 3.1 Relational Operators and Expressions 3.2 If and if-else Statements 3.3 The Type Double 3.4 Program Design with the While](https://reader035.vdocuments.us/reader035/viewer/2022062803/56649c7e5503460f94934332/html5/thumbnails/42.jpg)
Figure 3.15 Degree measure around a circle
0º
270º
180º
90º
![Page 43: 3. S/E with Control Structures 3.1 Relational Operators and Expressions 3.2 If and if-else Statements 3.3 The Type Double 3.4 Program Design with the While](https://reader035.vdocuments.us/reader035/viewer/2022062803/56649c7e5503460f94934332/html5/thumbnails/43.jpg)
Figure 3.16 An arc from the oval of Figure 3.14
90º 45º
![Page 44: 3. S/E with Control Structures 3.1 Relational Operators and Expressions 3.2 If and if-else Statements 3.3 The Type Double 3.4 Program Design with the While](https://reader035.vdocuments.us/reader035/viewer/2022062803/56649c7e5503460f94934332/html5/thumbnails/44.jpg)
Figure 3.17 The structure of a rounded rectangle
![Page 45: 3. S/E with Control Structures 3.1 Relational Operators and Expressions 3.2 If and if-else Statements 3.3 The Type Double 3.4 Program Design with the While](https://reader035.vdocuments.us/reader035/viewer/2022062803/56649c7e5503460f94934332/html5/thumbnails/45.jpg)
Dimension d = getSize(); int w = d.width; int h = d.height; g.drawRect(2*w/3,0,w/3,h/3);
Figure 3.19 Drawing a rectangle relative to the applet's size