Presentation is loading. Please wait.

Presentation is loading. Please wait.

The if-else statement. Introducing the if-else statement Programming problem: Re-write the a,b,c-formula program to solve for complex number solutions.

Similar presentations


Presentation on theme: "The if-else statement. Introducing the if-else statement Programming problem: Re-write the a,b,c-formula program to solve for complex number solutions."— Presentation transcript:

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 b 2 - 4ac < 0

3 Introducing the if-else statement (cont.) Algorithm: input a, b, c; Det = b*b - 4*a*c; // Compute the determinant if ( Det >= 0 ) { print -b/(2a) + sqrt(Det)/(2a); // Real number solutions print -b/(2a) - sqrt(Det)/(2a); } if ( Det < 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 = b*b - 4*a*c; if ( Det >= 0 ) { System.out.println( (-b + Math.sqrt( Det ) ) / (2*a) ); System.out.println( (-b - Math.sqrt( Det ) ) / (2*a) ); } if ( Det < 0 ) { re = -b/(2*a); // Compute real part im = Math.sqrt( -Det )/(2*a); // 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 a:1 Enter b:2 Enter c:5 -1.0+2.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.) This is the condition of the if-else-statement 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 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 b 2 - 4ac < 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 = b*b - 4*a*c;

19 The a,b,c-formula using an if-else-statement (cont.) if ( Det >= 0 ) { System.out.println( (-b + Math.sqrt( Det ) ) / (2*a) ); System.out.println( (-b - Math.sqrt( Det ) ) / (2*a) ); } else { re = -b/(2*a); // Compute real part im = Math.sqrt( -Det )/(2*a); // 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 >= 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 >= b ) // Find max(a,b) max = a; else max = b; if ( c > max ) // Check c > 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 >= b ) ; // Bogus ; max = a; else max = b;

36 Common errors in if-else-statements (cont.) Compiler message: Error01.java:18: 'else' without 'if' else ^

37 Common errors in if-else-statements (cont.) because the compiler "reads" the program as follows: if ( a >= 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 >= 0 ) System.out.println( (-b + Math.sqrt( Det ) ) / (2*a) ); System.out.println( (-b - Math.sqrt( Det ) ) / (2*a) ); else re = -b/(2*a); // Compute real part im = Math.sqrt( -Det )/(2*a); // 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 >= 0 ) System.out.println( (-b + Math.sqrt( Det ) ) / (2*a) ); // If-statement System.out.println( (-b - Math.sqrt( Det ) ) / (2*a) ); // Print else // Else without if re = -b/(2*a); // Compute real part im = Math.sqrt( -Det )/(2*a); // 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 >= b ) max = a // Missing semicolon !!! else max = b;

41 Common errors in if-else-statements (cont.) Compiler message: Error03.java:17: ';' 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 >= b ) { max = a; }; // bogus semicolon !!! else { max = b; }

44 Common errors in if-else-statements (cont.) Compiler message: Error04.java:20: '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 >= b ) { max = a; }; // bogus semicolon !!! else { max = b; }

47 Common errors in if-else-statements (cont.) Compiler message: Error04.java:20: 'else' without 'if' else ^

48 Common errors in if-else-statements (cont.) Because syntactically, the program is read as follows: if ( a >= 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.


Download ppt "The if-else statement. Introducing the if-else statement Programming problem: Re-write the a,b,c-formula program to solve for complex number solutions."

Similar presentations


Ads by Google