Presentation is loading. Please wait.

Presentation is loading. Please wait.

1 Agenda If Statement True/False Logical Operators Nested If / Switch Exercises & Misc.

Similar presentations


Presentation on theme: "1 Agenda If Statement True/False Logical Operators Nested If / Switch Exercises & Misc."— Presentation transcript:

1 1 Agenda If Statement True/False Logical Operators Nested If / Switch Exercises & Misc.

2 2 Flow Control Usually a program is executed line after line in order It is reasonable to expect different execution orders on different inputs Computer games Illegal input Conditional statements if switch

3 3 Conditional Statement: if used to execute conditionally a statement (or block of code) Syntax: if (expression) statement If expression is true, statement is executed (what is the meaning of ‘true’?) statement can be replaced by a block of statements, enclosed in curly braces

4 4 Example /* This program displays the absolute value of a number given by the user */ #include int main() { double num; printf("Please enter a real number: "); scanf("%lf", &num); if (num<0) { num = -num; } printf("The absolute value is %g\n", num); return 0; }

5 5 If-Else Statement if (expression) statement 1 else statement 2 if expression is true, statement 1 is executed. if expression is false, statement 2 is executed both statements can be (and very often are) replaced by blocks of statements (“compound statements”)

6 6 Example int first, second, min; if (first < second) { min = first; printf ("The first number is smaller than the second\n"); } else { min = second; printf ("The second number is smaller than the first\n"); } printf("The smaller number is equal to %d\n", min);

7 7 Agenda If Statement True/False Logical Operators Nested If / Switch Exercises & Misc.

8 8 True and False In C, every expression has a numeric value An expression is ‘true’ when it is non-zero If it is zero, it is false Therefore, in the following – if (expression) statement statement is executed if expression is non zero

9 9 More About Operators In C, every expression has a numeric value When using arithmetical operators (+, -, *, /) this is straight forward The value of A+B is the sum of A and B And so on…

10 10 More About Operators Expressions with relational operators (<, <=, etc’) have values as well (intuitively, we are used to thinking about them as ‘true’ or ‘false’) A < B equals zero if A is larger than or equal to B (false), and some non-zero value if A is smaller than B (true) The exact non-zero value varies (and is not important for that matter)

11 11 Relational Operators They are – A == B (Note the difference from A = B) A != B (inequality) A < B A > B A <= B A >= B The value of the expression is non-zero if it’s true, zero if it’s false

12 12 Example int a, b; printf("Enter two Numbers\n"); scanf("%d%d", &a, &b); if (a == b) { printf("The numbers equal %d\n", a); printf("The expression a == b is %d\n", a == b); } else { printf("The numbers are not equal\n"); printf("The expression a == b is %d\n", a == b); }

13 13 The Assignment Operator = The assignment operator is also an operator. Hence, expressions involving it have a numeric value This value equals to whatever appears on the right of the assignment operator For example – (x = 4) equals 4 (y = 0) equals 0

14 14 A Very Common Mistake Very often a programmer might confuse between the equality operator and the assignment operator - if (x==4) … if (x=4) … The second is usually a mistake, but legal in C so the compiler doesn’t call it!

15 15 More Examples if (0) if (1) if (3>4) if (x) equivalent to if (x == 0) if (a = 5)

16 16 Code Examples val.c, eqn_sign.c

17 17 Agenda If Statement True/False Logical Operators Nested If / Switch Exercises & Misc.

18 18 Logical Operators Allows to evaluate two or more expressions - !A – ‘not’ - True when A is not, and vice versa. A && B – ‘and’ - True when both A and B are true A || B – ‘or’ (inclusive or) - True when either A or B (or both) are true

19 19 &&, ||, != 01 000 101 01 001 111 01 10 && || !

20 20 Example int grade; printf("Please enter your grade: "); scanf("%d", &grade); if (grade 100) printf("This is not a valid grade!\n"); else printf("This is a valid grade\n");

21 21 Example if (price > 100) if (price < 200) printf(“reasonable price”); if (price > 100 && price < 200) printf(“reasonable price”);

22 22 Operation Execution Order ! %, /, * -, +, ==, … &&, ||

23 23 Agenda If Statement True/False Logical Operators Nested If / Switch Exercises & Misc.

24 24 Else-If if statements distinguish between exactly 2 cases and execute different code in each case The else-if construction allows for a multi-way decision

25 25 Else-If if (expression) statement else if (expression) statement else if (expression) statement else statement

26 26 Example if (grade >= 90) printf ("A\n"); else if (grade >= 80) printf ("B\n"); else if (grade >= 70) printf ("C\n"); else if (grade >= 60) printf ("D\n"); else printf ("F\n");

27 27 Switch switch (expression) { case const-exp1: statements break; case const-exp2: statements break;. default: statements } variable – discrete const-exp – equality is tested It is ordered break – stop default – optional, when no prior condition held

28 28 That grade example again switch (grade/10) { case 10: case 9: printf ("A\n"); break; case 8: printf ("B\n"); break; case 7: printf ("C\n"); break; case 6: printf ("D\n"); break; default: printf ("F\n"); }

29 29 Agenda If Statement True/False Logical Operators Nested If / Switch Exercises & Misc.

30 30 Exercise Input – An English letter Output – If input is a lowercase letter – the corresponding uppercase letter If input is an uppercase letter - corresponding lowercase letter Note – Remember to check for input validity!

31 31 Solution switch_case.c

32 32 Exercise (difficult!) Write a program such that – Input – a 3-digit number Output – the same number with digits sorted Example – if input is 132, output should be 123 Note – if input is not a 3-digit number, display an error message and exit!

33 33 Solution Sort_digits.c

34 34 The ?: operator expr 1 ? expr 2 : expr 3 If expr1 is true (non-zero), expr2 is evaluated. Otherwise, expr3 is evaluated

35 35 The ?: operator int i, j, min; printf("Please enter two numbers: "); scanf("%d%d", &i, &j); min = (i < j) ? i : j; printf("The minimum between %d and %d is%d\n", i, j, min);

36 36 Example – mass conversion Write a program such that – Input – A positive number indicating mass One of the following characters – o, c, k, p, indicating measurement unit (ounce, carat, kilogram, or pound Output – The same mass expressed in grams convert_gr.c

37 37 Exercise Write a program that accepts a number between 1 and 100 from the user. If there is a coin of that value in cents, it should display its name. Otherwise, it should report that there is no such coin 1 = cent, 5 = nickel, 10 = dime, 25 = quarter, 100 = dollar Remember to check for input validity!

38 38 Solution Coins.c

39 39 Exercise Write a program that accepts an real number, followed by an arithmetical operator (+, -, *, /) and then a second real number The program will calculate the result of the expression and present it on the screen Example – for the input 10-8, the output will be – 10-8 = 2

40 40 Solution Operation.c


Download ppt "1 Agenda If Statement True/False Logical Operators Nested If / Switch Exercises & Misc."

Similar presentations


Ads by Google