The if-else statement - PowerPoint PPT Presentation

1 / 51
About This Presentation
Title:

The if-else statement

Description:

... Programming example: leap year Leap year description (Wikipedia): Programming example: leap year (cont.) Algorithm: Programming example: leap year ... – PowerPoint PPT presentation

Number of Views:44
Avg rating:3.0/5.0
Slides: 52
Provided by: Nath96
Category:
Tags: leap | statement | year

less

Transcript and Presenter's Notes

Title: The if-else statement


1
The if-else statement
2
Introducing the if-else statement
  • Programming problem
  • Re-write the a,b,c-formula program to solve for
    complex number solutions when b2 - 4ac lt 0

3
Introducing the if-else statement (cont.)
  • Algorithm

input a, b, c Det bb - 4ac //
Compute the determinant if ( Det gt 0 )
print -b/(2a) sqrt(Det)/(2a) // Real
number solutions print -b/(2a) -
sqrt(Det)/(2a) if ( Det lt 0 )
print -b/(2a) "" (sqrt(-Det)/(2a) "i") //
Complex number solutions print -b/(2a)
"-" (sqrt(-Det)/(2a) "i")
4
Introducing the if-else statement (cont.)
  • Java program

import java.util.Scanner public class
Abc3 public static void main(String
args) double a, b, c, Det, re,
im Scanner in new
Scanner(System.in) // Construct Scanner object
a in.nextDouble() // Read in next
number into a b in.nextDouble() //
Read in next number into b c
in.nextDouble() // Read in next number into c
5
Introducing the if-else statement (cont.)
Det bb - 4ac if ( Det
gt 0 ) System.out.println( (-b
Math.sqrt( Det ) ) / (2a) )
System.out.println( (-b - Math.sqrt( Det ) ) /
(2a) ) if ( Det lt 0 )
re -b/(2a) //
Compute real part im Math.sqrt( -Det
)/(2a) // Compute imaginary part
System.out.println( re "" im "i" )
System.out.println( re "-" im "i" )

6
Introducing the if-else statement (cont.)
  • Example Program (Demo above code)
  • Prog file http//mathcs.emory.edu/cheung/Courses
    /170/Syllabus/06/Progs/Abc3.java    
  • How to run the program
  • Right click on link and save in a scratch
    directory
  • To compile   javac Abc3.java
  • To run          java Abc3

7
Introducing the if-else statement (cont.)
  • Example

Enter a1 Enter b2 Enter c5 -1.02.0i
-1.0-2.0i
8
Introducing the if-else statement (cont.)
  • Shortcoming
  • We have to negate the if-condition ourselves...
  • This can introduce unnecessary errors

9
Introducing the if-else statement (cont.)
  • Solution
  • Extend the if-statement with an alternative
    statement
  • The alternative statement is only executed when
    the if-condition is false

10
The if-else statement in Java
  • The if-else statement
  • The if-else statement is the second conditional
    statement in Java
  • The if-else statement selects one of two
    statements to be executed based on a given
    condition

11
Syntax and meaning of the if-else-statement
  • Syntax of the if-else-statement

if ( CONDITION ) ONE- statement else
ONE-statement
12
Syntax and meaning of the if-else-statement
(cont.)
  • Explanation
  • The keyword if announces (to the Java compiler)
    that we started an if-else-statement
  • A conditional clause ( CONDITION ) follows the
    keyword if
  • This is the condition of the if-else-statement

13
Syntax and meaning of the if-else-statement
(cont.)
  • Following the condition clause, you can write
    (only) one statement
  • Following the then-part, you must specify the
    keyword else followed by (only) one statement
  • This statement will only be executed if the
    condition is true
  • This is the condition of the if-else-statement
  • This statement will only be executed if the
    condition is false

14
Syntax and meaning of the if-else-statement
(cont.)
  • Note

The way that the Java compiler decide whether a
conditional statement is is by the
presence/absence of the keyword else.
  • An if-statement
  • An if-else-statement

15
Computer Jargon else-part
  • The statement following the keyword else in an
    if-else-statement is called
  • The else-part of the if-else-statement (Or
    else-part for short)

16
Computer Jargon else-part (cont.)
  • Schematically

17
The a,b,c-formula using an if-else-statement
  • Programming problem
  • Algorithm
  • Re-write the a,b,c-formula program to solve for
    complex number solutions when b2 - 4ac lt 0

18
The a,b,c-formula using an if-else-statement
(cont.)
  • Java program

import java.util.Scanner public class
Abc4 public static void main(String
args) double a, b, c, Det, re,
im Scanner in new
Scanner(System.in) // Construct Scanner object
a in.nextDouble() // Read in next
number into a b in.nextDouble() //
Read in next number into b c
in.nextDouble() // Read in next number into c
Det bb - 4ac
19
The a,b,c-formula using an if-else-statement
(cont.)
  • if ( Det gt 0 )
  • System.out.println( (-b Math.sqrt(
    Det ) ) / (2a) )
  • System.out.println( (-b - Math.sqrt(
    Det ) ) / (2a) )
  • else
  • re -b/(2a) //
    Compute real part
  • im Math.sqrt( -Det )/(2a) // Compute
    imaginary part
  • System.out.println( re "" im
    "i" )
  • System.out.println( re "-" im
    "i" )

20
The a,b,c-formula using an if-else-statement
(cont.)
  • Example Program (Demo above code)
  • Prog file http//mathcs.emory.edu/cheung/Courses
    /170/Syllabus/06/Progs/Abc4.java   
  • How to run the program
  • Right click on link and save in a scratch
    directory
  • To compile   javac Abc4.java
  • To run          java Abc4

21
Programming example find maximum of 2 numbers
  • Programming problem
  • Read in 2 number a and b
  • Assign to the variable max the largest value of
    a and b

22
Programming example find maximum of 2 numbers
(cont.)
  • Algorithm

23
Programming example find maximum of 2 numbers
(cont.)
  • Java program

import java.util.Scanner public class
Max01 public static void main(String
args) double a, b, max
Scanner in new Scanner(System.in) //
Construct Scanner object a
in.nextDouble() // Read in next number into a
b in.nextDouble() // Read in next
number into b if ( a gt b )
max a else max b
System.out.println( "max value " max )

24
Programming example find maximum of 2 numbers
(cont.)
  • Example Program (Demo above code)
  • Prog file http//mathcs.emory.edu/cheung/Courses
    /170/Syllabus/06/Progs/Max01.java
  • How to run the program
  • Right click on link and save in a scratch
    directory
  • To compile   javac Max01.java
  • To run          java Max01

25
Program example find maximum of 3 numbers
  • Programming problem
  • Read in 3 number a, b and c
  • Assign to the variable max the largest value of
    a, b and c

26
Program example find maximum of 3 numbers (cont.)
  • Algorithm

27
Program example find maximum of 3 numbers (cont.)
  • Java program

import java.util.Scanner public class
Max01 public static void main(String
args) double a, b, max
Scanner in new Scanner(System.in) //
Construct Scanner object a
in.nextDouble() // Read in next number into a
b in.nextDouble() // Read in next
number into b c in.nextDouble() //
Read in next number into c
28
Program example find maximum of 3 numbers (cont.)
  • if ( a gt b ) // Find max(a,b)
  • max a
  • else
  • max b
  • if ( c gt max ) // Check c gt max ?
  • max c
  • System.out.println( "max value " max
    )

29
Program example find maximum of 3 numbers (cont.)
  • Example Program (Demo above code)
  • Prog file http//mathcs.emory.edu/cheung/Courses
    /170/Syllabus/06/Progs/Max02.java
  • How to run the program
  • Right click on link and save in a scratch
    directory
  • To compile   javac Max02.java
  • To run          java Max02

30
Programming example leap year
  • Leap year description (Wikipedia)
  • In the Gregorian calendar, the current standard
    calendar in most of the world, most years that
    are evenly divisible by 4 are leap years.
  • Years that are evenly divisible by 100 are not
    leap years, unless they are also evenly divisible
    by 400, in which case they are leap years

31
Programming example leap year (cont.)
  • Algorithm

32
Programming example leap year (cont.)
  • Program in Java

import java.util.Scanner public class
LeapYear01 public static void
main(String args) int year
boolean leap
33
Programming example leap year (cont.)
  • Scanner in new Scanner(System.in) //
    Construct Scanner object
  • year in.nextInt() // Read in
    year
  • if ( year 4 0 )
  • leap true
  • else
  • leap false
  • if ( year 100 0 )
  • leap false
  • if ( year 400 0 )
  • leap true
  • System.out.println("Year is leap year ? "
    leap)

34
Programming example leap year (cont.)
  • Example Program (Demo above code)
  • Prog file http//mathcs.emory.edu/cheung/Courses
    /170/Syllabus/06/Progs/LeapYear01.java
  • How to run the program
  • Right click on link and save in a scratch
    directory
  • To compile   javac LeapYear01.java
  • To run          java LeapYear01

35
Common errors in if-else-statements
  • Common error 1 bogus semicolon after the
    if-condition
  • Example

if ( a gt b ) // Bogus
max a else max
b
36
Common errors in if-else-statements (cont.)
  • Compiler message

Error01.java18 'else' without 'if'
else
37
Common errors in if-else-statements (cont.)
  • because the compiler "reads" the program as
    follows

if ( a gt b ) // A correct
if-statement //
Note the if-statement ended here !
max a // A correct assignment
statement else //
else ? Where is the if ??? max b
38
Common errors in if-else-statements (cont.)
  • Common error 2 forgetting to use statement block
    in the then-part
  • Example

if ( Det gt 0 ) System.out.println(
(-b Math.sqrt( Det ) ) / (2a) )
System.out.println( (-b - Math.sqrt( Det ) ) /
(2a) ) else re -b/(2a)
// Compute real part im Math.sqrt(
-Det )/(2a) // Compute imaginary part
System.out.println( re "" im "i"
) System.out.println( re "-" im
"i" )
39
Common errors in if-else-statements (cont.)
  • The Java compiler will report the error 'else'
    without 'if' because syntactically, the program
    is read as follows

if ( Det gt 0 ) System.out.println(
(-b Math.sqrt( Det ) ) / (2a) ) //
If-statement System.out.println( (-b -
Math.sqrt( Det ) ) / (2a) ) // Print
else
// Else without if re
-b/(2a) // Compute real part
im Math.sqrt( -Det )/(2a) // Compute
imaginary part System.out.println(
re "" im "i" )
System.out.println( re "-" im "i" )
40
Common errors in if-else-statements (cont.)
  • Common error 3 missing semicolon after the
    then-part
  • Example

if ( a gt b ) max a //
Missing semicolon !!! else
max b
41
Common errors in if-else-statements (cont.)
  • Compiler message

Error03.java17 '' expected
max a
42
Common errors in if-else-statements (cont.)
  • Reason
  • The then-part is ONE statement
  • A statement must be ended with a semicolon   

43
Common errors in if-else-statements (cont.)
  • Common error 4 bogus semicolon after the block
    in the then-part
  • Example

if ( a gt b ) max a
// bogus semicolon
!!! else max b
44
Common errors in if-else-statements (cont.)
  • Compiler message

Error04.java20 'else' without 'if'
else
45
Common errors in if-else-statements (cont.)
  • Reason
  • The then-part is ONE statement
  • A statement must be ended with a semicolon
          

46
Common errors in if-else-statements (cont.)
  • Common error 4 bogus semicolon after the block
    in the then-part
  • Example

if ( a gt b ) max a
// bogus semicolon
!!! else max b

47
Common errors in if-else-statements (cont.)
  • Compiler message

Error04.java20 'else' without 'if'
else
48
Common errors in if-else-statements (cont.)
  • Because syntactically, the program is read as
    follows

if ( a gt b ) // An if-statement
max a
// An empty statement !!!
else // Else without if...
max b
49
Programming advice
  • As you can see, forgetting a "" and adding an
    extra "" can cause serious syntax errors
  • The best thing is to stick to one useful form
    use block !!!

50
Programming advice (cont.)
  • I always write if-statements and
    if-else-statements using blocks first

if ( ..... ) (leave empty first)
--------------------------------------
-------- if ( ..... ) (leave empty
first) else (leave empty
first)
51
Programming advice (cont.)
  • I fill in the statements in the then-part and
    else-part later.
  • So even when the if-part and/or else-part
    consist of 1 statement, I write them as blocks.
Write a Comment
User Comments (0)
About PowerShow.com