C Programming: Arithmetic and Logic Operationsis 4. Preincrement Operator • If the ++ is before...
Transcript of C Programming: Arithmetic and Logic Operationsis 4. Preincrement Operator • If the ++ is before...
![Page 1: C Programming: Arithmetic and Logic Operationsis 4. Preincrement Operator • If the ++ is before the variable, then the incrementing is done first (a ... Structured Programming •](https://reader035.fdocuments.us/reader035/viewer/2022081405/5f0a35fb7e708231d42a8c75/html5/thumbnails/1.jpg)
C Programming: Arithmetic and Logic Operations
A. Sahu amd S. V .RaoDept of Comp. Sc. & Engg.Dept of Comp. Sc. & Engg.
Indian Institute of Technology Guwahati
1
![Page 2: C Programming: Arithmetic and Logic Operationsis 4. Preincrement Operator • If the ++ is before the variable, then the incrementing is done first (a ... Structured Programming •](https://reader035.fdocuments.us/reader035/viewer/2022081405/5f0a35fb7e708231d42a8c75/html5/thumbnails/2.jpg)
Algebra: BEDMAS/PEDMAS Rule ( )(recap)
• B‐E‐DM‐AS or P‐E‐DM‐AS/ k h ( )• B/P : Bracket or Parenthesis ( )
– In C, only ( ) used for expression– Curly braces {}, and square bracket [] used for some other purpose.
• Again [] may involves in expression as in the form of array access
• E : Exponentiation• E : Exponentiation • DM: Division and Multiplication • AS : Addition and Subtraction
2
![Page 3: C Programming: Arithmetic and Logic Operationsis 4. Preincrement Operator • If the ++ is before the variable, then the incrementing is done first (a ... Structured Programming •](https://reader035.fdocuments.us/reader035/viewer/2022081405/5f0a35fb7e708231d42a8c75/html5/thumbnails/3.jpg)
BEDMAS equivalent in C Arithmetic Operators Precedence RuleArithmetic Operators Precedence Rule
(recap)Operator(s) Precedence & Associativity
( ) Evaluated first If nested( ) Evaluated first. If nested(embedded), innermost first.
* / % Evaluated second If there are* / % Evaluated second. If there areseveral, evaluated left to right.
E l t d thi d If th+ ‐ Evaluated third. If there are several, evaluated left to right.
l d l h l f= Evaluated last, right to left.
![Page 4: C Programming: Arithmetic and Logic Operationsis 4. Preincrement Operator • If the ++ is before the variable, then the incrementing is done first (a ... Structured Programming •](https://reader035.fdocuments.us/reader035/viewer/2022081405/5f0a35fb7e708231d42a8c75/html5/thumbnails/4.jpg)
Using Parentheses• Use parentheses to change the order in which an expression is evaluated.an expression is evaluated.a + b * c Would multiply b * c first,
then add a to the result.t e add a to t e esu tIf you really want the sum of a and b to be multiplied by c, use parentheses to force the p y , pevaluation to be done in the order you want.
(a + b) * c(a + b) * c• Also use parentheses to clarify a complex expressionexpression.
![Page 5: C Programming: Arithmetic and Logic Operationsis 4. Preincrement Operator • If the ++ is before the variable, then the incrementing is done first (a ... Structured Programming •](https://reader035.fdocuments.us/reader035/viewer/2022081405/5f0a35fb7e708231d42a8c75/html5/thumbnails/5.jpg)
Practice With Evaluating Expressions (recap)(recap)
Given integer variables a, b, c, d, and e, where a = 1 b = 2 c = 3 d = 4where a = 1, b = 2, c = 3, d = 4,evaluate the following expressions:
a + b - c + da * b / ca b / c1 + a * b % c
+ d % ba + d % b - ce = b = d + c / b - a
![Page 6: C Programming: Arithmetic and Logic Operationsis 4. Preincrement Operator • If the ++ is before the variable, then the incrementing is done first (a ... Structured Programming •](https://reader035.fdocuments.us/reader035/viewer/2022081405/5f0a35fb7e708231d42a8c75/html5/thumbnails/6.jpg)
Practice With Evaluating Expressions(recap)(recap)
Given integer variables a, b, c, d, and e, where a = 1 b = 2 c = 3 d = 4where a = 1, b = 2, c = 3, d = 4,evaluate the following expressions:
a + b - c + d =3-3+4=0+4=4a * b / c = 2/3+4=0+4=4a b / c 2/3+4 0+4 41 + a * b % c =1+2%3=1+2=3
+ d % b 1+0 3 1 3 2a + d % b - c =1+0-3=1-3=-2e = b = d + c / b – a
![Page 7: C Programming: Arithmetic and Logic Operationsis 4. Preincrement Operator • If the ++ is before the variable, then the incrementing is done first (a ... Structured Programming •](https://reader035.fdocuments.us/reader035/viewer/2022081405/5f0a35fb7e708231d42a8c75/html5/thumbnails/7.jpg)
Increment and Decrement OperatorsIncrement and Decrement Operators
• The increment operator ++The increment operator ++• The decrement operator ‐‐
d l h () b hi h h *• Precedence: lower than (), but higher than * / and %
• Associativity: right to left• Increment and decrement operators can only p ybe applied to variables, not to constants or expressionsp
![Page 8: C Programming: Arithmetic and Logic Operationsis 4. Preincrement Operator • If the ++ is before the variable, then the incrementing is done first (a ... Structured Programming •](https://reader035.fdocuments.us/reader035/viewer/2022081405/5f0a35fb7e708231d42a8c75/html5/thumbnails/8.jpg)
Increment OperatorIncrement Operator• If we want to add one to a variable, we can say:
count = count + 1 ;
• Programs often contain statements that increment variables, so to save on typing, C provides these shortcuts:
count++ ; OR ++count ;Both do the same thing They change the valueBoth do the same thing. They change the value of count by adding one to it.
![Page 9: C Programming: Arithmetic and Logic Operationsis 4. Preincrement Operator • If the ++ is before the variable, then the incrementing is done first (a ... Structured Programming •](https://reader035.fdocuments.us/reader035/viewer/2022081405/5f0a35fb7e708231d42a8c75/html5/thumbnails/9.jpg)
Postincrement OperatorPostincrement Operator• The position of the ++ determines when the value is incremented If the ++ is after the variable then theincremented. If the ++ is after the variable, then the incrementing is done last (a postincrement).
int amount count ;int amount, count ;
count = 3 ;amount = 2 * count++ ;amount 2 count++ ;
• amount gets the value of 2 * 3, which is 6, and then 1 gets added to countgets added to count.
• So, after executing the last line, amount is 6 and count is 4.is 4.
![Page 10: C Programming: Arithmetic and Logic Operationsis 4. Preincrement Operator • If the ++ is before the variable, then the incrementing is done first (a ... Structured Programming •](https://reader035.fdocuments.us/reader035/viewer/2022081405/5f0a35fb7e708231d42a8c75/html5/thumbnails/10.jpg)
Preincrement OperatorPreincrement Operator• If the ++ is before the variable, then the incrementing is done first (a preincrement)is done first (a preincrement).
int amount, count ;
count = 3 ;amount = 2 * ++count ;
• 1 gets added to count first, then amount gets the value of 2 * 4 which is 8of 2 4, which is 8.
• So, after executing the last line, amount is 8 and count is 4.is 4.
![Page 11: C Programming: Arithmetic and Logic Operationsis 4. Preincrement Operator • If the ++ is before the variable, then the incrementing is done first (a ... Structured Programming •](https://reader035.fdocuments.us/reader035/viewer/2022081405/5f0a35fb7e708231d42a8c75/html5/thumbnails/11.jpg)
A Hand Trace Exampleint ans, val= 4 ;
Code Val Ans4 garbage
val = value + 1 ;val++ ;val++ ;++val ;ans = 2 * val++ ;ans = ++val / 2 ;val-- ;--val ;ans = --val * 2 ;
/ 3ans = val-- / 3 ;
![Page 12: C Programming: Arithmetic and Logic Operationsis 4. Preincrement Operator • If the ++ is before the variable, then the incrementing is done first (a ... Structured Programming •](https://reader035.fdocuments.us/reader035/viewer/2022081405/5f0a35fb7e708231d42a8c75/html5/thumbnails/12.jpg)
A Hand Trace Exampleint ans, val= 4 ;
Code Val Ans4 garbage
val = value + 1 ; 5val++ ; 6val++ ; 6 ++val ; 7 ans = 2 * val++ ; 8 14 ans = ++val / 2 ; 9 4val-- ; 8--val ; 7ans = --val * 2 ; 6 3
l / 3 5 1ans = val-- / 3 ; 5 1
![Page 13: C Programming: Arithmetic and Logic Operationsis 4. Preincrement Operator • If the ++ is before the variable, then the incrementing is done first (a ... Structured Programming •](https://reader035.fdocuments.us/reader035/viewer/2022081405/5f0a35fb7e708231d42a8c75/html5/thumbnails/13.jpg)
C Code : Previous Exampleint main(){int main(){int ans, val=4;val = val + 1 ;i tf(“ %d l %d\ ” l)printf(“ans=%d val=%d\n”,ans,val);
val++ ; ++val ;printf(“ans=%d val=%d\n”,ans,val); ans = 2 * val++ ; printf(“ans=%d val=%d\n”,ans,val);val--;--val;val ; val; printf(“ans=%d val=%d\n”,ans,val); ans=--val*2;printf(“ans %d val %d\n” ans val);printf(“ans=%d val=%d\n”,ans,val);ans = val-- / 3 ; printf(“ans=%d val=%d\n”,ans,val);return 0;}
![Page 14: C Programming: Arithmetic and Logic Operationsis 4. Preincrement Operator • If the ++ is before the variable, then the incrementing is done first (a ... Structured Programming •](https://reader035.fdocuments.us/reader035/viewer/2022081405/5f0a35fb7e708231d42a8c75/html5/thumbnails/14.jpg)
PracticePractice
GivenGivenint a = 1, b = 2, c = 3 ;
What is the value of this expression?
++a * b - c--
What are the new values of a, b, and c?
![Page 15: C Programming: Arithmetic and Logic Operationsis 4. Preincrement Operator • If the ++ is before the variable, then the incrementing is done first (a ... Structured Programming •](https://reader035.fdocuments.us/reader035/viewer/2022081405/5f0a35fb7e708231d42a8c75/html5/thumbnails/15.jpg)
PracticePractice
GivenGivenint a = 1, b = 2, c = 3 ;
What is the value of this expression?
++a * b - c--
=1What are the new values of a, b, and c?
a 2 c 2a =2 c=2
![Page 16: C Programming: Arithmetic and Logic Operationsis 4. Preincrement Operator • If the ++ is before the variable, then the incrementing is done first (a ... Structured Programming •](https://reader035.fdocuments.us/reader035/viewer/2022081405/5f0a35fb7e708231d42a8c75/html5/thumbnails/16.jpg)
More PracticeMore Practice
GivenGivenint a =1, b =2, c =3, d =4 ;
What is the value of this expression?
++b / c + a * d++
What are the new values of a, b, c, and d?
![Page 17: C Programming: Arithmetic and Logic Operationsis 4. Preincrement Operator • If the ++ is before the variable, then the incrementing is done first (a ... Structured Programming •](https://reader035.fdocuments.us/reader035/viewer/2022081405/5f0a35fb7e708231d42a8c75/html5/thumbnails/17.jpg)
More PracticeMore Practice
GivenGivenint a =1, b =2, c =3, d =4 ;
What is the value of this expression?
++b / c + a * d++
= 1+4 =5What are the new values of a, b, c, and d?a 1 b 3 c 3 d 5a=1, b=3,c=3,d=5
![Page 18: C Programming: Arithmetic and Logic Operationsis 4. Preincrement Operator • If the ++ is before the variable, then the incrementing is done first (a ... Structured Programming •](https://reader035.fdocuments.us/reader035/viewer/2022081405/5f0a35fb7e708231d42a8c75/html5/thumbnails/18.jpg)
Assignment Operators
= += ‐= *= /= %=S E i l SStatement Equivalent Statementa = a+2 ; a += 2 ;a = a-3 ; a -= 3 ;a = a*2 ; a *= 2 ;a = a/4 ; a /= 4 ;a = a%2 ; a %= 2 ;; ;b = b+(c+2); b += c + 2 ;d =d*(e-5); d *= e - 5 ;d =d (e 5); d = e 5 ;
![Page 19: C Programming: Arithmetic and Logic Operationsis 4. Preincrement Operator • If the ++ is before the variable, then the incrementing is done first (a ... Structured Programming •](https://reader035.fdocuments.us/reader035/viewer/2022081405/5f0a35fb7e708231d42a8c75/html5/thumbnails/19.jpg)
Practice with Assignment OperatorsPractice with Assignment Operatorsint i = 1, j = 2, k = 3, m = 4 ;
Expression Valuepi += j + k
j *= k = m + 5
k -= m /= j * 2
![Page 20: C Programming: Arithmetic and Logic Operationsis 4. Preincrement Operator • If the ++ is before the variable, then the incrementing is done first (a ... Structured Programming •](https://reader035.fdocuments.us/reader035/viewer/2022081405/5f0a35fb7e708231d42a8c75/html5/thumbnails/20.jpg)
Practice with Assignment OperatorsPractice with Assignment Operatorsint i = 1, j = 2, k = 3, m = 4 ;
Expression Valuepi += j + k i=6
j *= k = m + 5 k=9, j=18
k -= m /= j * 2 m=1, k=2
![Page 21: C Programming: Arithmetic and Logic Operationsis 4. Preincrement Operator • If the ++ is before the variable, then the incrementing is done first (a ... Structured Programming •](https://reader035.fdocuments.us/reader035/viewer/2022081405/5f0a35fb7e708231d42a8c75/html5/thumbnails/21.jpg)
Relational Expressions and EvaluationEvaluation
21
![Page 22: C Programming: Arithmetic and Logic Operationsis 4. Preincrement Operator • If the ++ is before the variable, then the incrementing is done first (a ... Structured Programming •](https://reader035.fdocuments.us/reader035/viewer/2022081405/5f0a35fb7e708231d42a8c75/html5/thumbnails/22.jpg)
Relational OperatorsOperator Meaning
< Less than> Greater than<= less than or equal to>= greater than or equal to== is equal to
Relational expressions evaluate to the integer
q!= is not equal to
Relational expressions evaluate to the integer values 1 (true) or 0 (false).
All of these operators are called binary operatorsbecause they take two expressions as operands.
![Page 23: C Programming: Arithmetic and Logic Operationsis 4. Preincrement Operator • If the ++ is before the variable, then the incrementing is done first (a ... Structured Programming •](https://reader035.fdocuments.us/reader035/viewer/2022081405/5f0a35fb7e708231d42a8c75/html5/thumbnails/23.jpg)
Practice with Relational ExpressionsPractice with Relational Expressions
int a = 1, b = 2, c = 3 ;int a 1, b 2, c 3 ;
Expression Value Expression Valuea < c (a + b)>= cb <= c (a + b)== cb < c (a + b) cc <= a a != b
> b ( + b)!a > b (a + b)!= cb >= c
![Page 24: C Programming: Arithmetic and Logic Operationsis 4. Preincrement Operator • If the ++ is before the variable, then the incrementing is done first (a ... Structured Programming •](https://reader035.fdocuments.us/reader035/viewer/2022081405/5f0a35fb7e708231d42a8c75/html5/thumbnails/24.jpg)
Practice with Relational ExpressionsPractice with Relational Expressions
int a = 1, b = 2, c = 3 ;int a 1, b 2, c 3 ;
Expression Value Expression Valuea < c T (a + b)>= c Tb <= c T (a + b)== c Tb < c T (a + b) c Tc <= a F a != b T
> b F ( + b)! Fa > b F (a + b)!= c Fb >= c F
![Page 25: C Programming: Arithmetic and Logic Operationsis 4. Preincrement Operator • If the ++ is before the variable, then the incrementing is done first (a ... Structured Programming •](https://reader035.fdocuments.us/reader035/viewer/2022081405/5f0a35fb7e708231d42a8c75/html5/thumbnails/25.jpg)
Arithmetic Expressions: True or Falsep
• Arithmetic expressions evaluate to numericArithmetic expressions evaluate to numeric values.
• An arithmetic expression that has a value of zero is falsezero is false.
• An arithmetic expression that has a valueAn arithmetic expression that has a value other than zero is true.
![Page 26: C Programming: Arithmetic and Logic Operationsis 4. Preincrement Operator • If the ++ is before the variable, then the incrementing is done first (a ... Structured Programming •](https://reader035.fdocuments.us/reader035/viewer/2022081405/5f0a35fb7e708231d42a8c75/html5/thumbnails/26.jpg)
Practice with Arithmetic ExpressionsPractice with Arithmetic Expressionsint a = 1, b = 2, c = 3 ;float x = 3.33, y = 6.66 ;
Expression Numeric Value True/Falsep /a + bb-2*ab-2*ac– b–ac–ac ay–xy-2*xy 2 x
![Page 27: C Programming: Arithmetic and Logic Operationsis 4. Preincrement Operator • If the ++ is before the variable, then the incrementing is done first (a ... Structured Programming •](https://reader035.fdocuments.us/reader035/viewer/2022081405/5f0a35fb7e708231d42a8c75/html5/thumbnails/27.jpg)
Practice with Arithmetic ExpressionsPractice with Arithmetic Expressionsint a = 1, b = 2, c = 3 ;float x = 3.33, y = 6.66 ;
Expression Numeric Value True/Falsep /a + b 3 Tb-2*a 0 Fb-2*a 0 Fc– b–a 0 Fc–a 2 Tc a 2 Ty–x 3.33 Ty-2*x 0.0 Fy 2 x 0.0 F
![Page 28: C Programming: Arithmetic and Logic Operationsis 4. Preincrement Operator • If the ++ is before the variable, then the incrementing is done first (a ... Structured Programming •](https://reader035.fdocuments.us/reader035/viewer/2022081405/5f0a35fb7e708231d42a8c75/html5/thumbnails/28.jpg)
Structured Programming• All programs can be written in terms of only three control structures– Sequence, selection and repetition
• The sequence structure – Unless otherwise directed, the statements are executed in the order in which they are written.
Th l i• The selection structure – Used to choose among alternative courses of actionaction.
• The repetition structure– Allows an action to be repeated while someAllows an action to be repeated while some condition remains true.
![Page 29: C Programming: Arithmetic and Logic Operationsis 4. Preincrement Operator • If the ++ is before the variable, then the incrementing is done first (a ... Structured Programming •](https://reader035.fdocuments.us/reader035/viewer/2022081405/5f0a35fb7e708231d42a8c75/html5/thumbnails/29.jpg)
Selection: the if statementif ( condition ){
statement(s) /* body of the if statement */
}
The braces are not required if the body contains only a single statementsingle statement.
However, they are a good idea and are required by the d d dC Coding Standards.
![Page 30: C Programming: Arithmetic and Logic Operationsis 4. Preincrement Operator • If the ++ is before the variable, then the incrementing is done first (a ... Structured Programming •](https://reader035.fdocuments.us/reader035/viewer/2022081405/5f0a35fb7e708231d42a8c75/html5/thumbnails/30.jpg)
Examplesif ( age >= 18 )
{
printf(“Vote!\n”) ;
}if ( value == 0 )if ( value 0 ){printf(“You entered a zero.\n”) ;printf (“Please try again.\n”) ;
}
![Page 31: C Programming: Arithmetic and Logic Operationsis 4. Preincrement Operator • If the ++ is before the variable, then the incrementing is done first (a ... Structured Programming •](https://reader035.fdocuments.us/reader035/viewer/2022081405/5f0a35fb7e708231d42a8c75/html5/thumbnails/31.jpg)
Good Programming PracticeGood Programming Practice• Always place braces around the body of an if statement.
• Advantages:– Easier to read– Will not forget to add the braces if you go back and add a second statement to the body
– Less likely to make a semantic error
• Indent the body of the if statement 3 to 4 spaces ‐‐ be consistent!p
![Page 32: C Programming: Arithmetic and Logic Operationsis 4. Preincrement Operator • If the ++ is before the variable, then the incrementing is done first (a ... Structured Programming •](https://reader035.fdocuments.us/reader035/viewer/2022081405/5f0a35fb7e708231d42a8c75/html5/thumbnails/32.jpg)
Selection: the if‐else statementSelection: the if else statementif ( condition ){
statement(s)/*if clause */statement(s)/ if clause /}lelse
{statement(s) /*else clause */
}}
![Page 33: C Programming: Arithmetic and Logic Operationsis 4. Preincrement Operator • If the ++ is before the variable, then the incrementing is done first (a ... Structured Programming •](https://reader035.fdocuments.us/reader035/viewer/2022081405/5f0a35fb7e708231d42a8c75/html5/thumbnails/33.jpg)
Exampleif ( age >= 18 )
{{
printf(“Vote!\n”) ;
}
elseelse
{
printf(“Maybe next time!\n”) ;
}}
![Page 34: C Programming: Arithmetic and Logic Operationsis 4. Preincrement Operator • If the ++ is before the variable, then the incrementing is done first (a ... Structured Programming •](https://reader035.fdocuments.us/reader035/viewer/2022081405/5f0a35fb7e708231d42a8c75/html5/thumbnails/34.jpg)
Good Programming Practice• Always place braces around the bodies of the if and else clauses of an if‐else statement.and else clauses of an if else statement.
• Advantages:Easier to read– Easier to read
– Will not forget to add the braces if you go back and add a second statement to the clauseadd a second statement to the clause
– Less likely to make a semantic error
I d t th b di f th if d l l 3 t• Indent the bodies of the if and else clauses 3 to 5 spaces ‐‐ be consistent!
![Page 35: C Programming: Arithmetic and Logic Operationsis 4. Preincrement Operator • If the ++ is before the variable, then the incrementing is done first (a ... Structured Programming •](https://reader035.fdocuments.us/reader035/viewer/2022081405/5f0a35fb7e708231d42a8c75/html5/thumbnails/35.jpg)
Nesting of if‐else Statementsgif ( condition1 ){
statement(s)}else if ( condition2 )else if ( condition2 ) {
statement(s)}}. . . /* more else clauses may be here */else{{
statement(s) /* the default case */}
![Page 36: C Programming: Arithmetic and Logic Operationsis 4. Preincrement Operator • If the ++ is before the variable, then the incrementing is done first (a ... Structured Programming •](https://reader035.fdocuments.us/reader035/viewer/2022081405/5f0a35fb7e708231d42a8c75/html5/thumbnails/36.jpg)
Good Example : 2 if 2 elseGood Example : 2 if 2 elseif ( value == 0 ){{
printf(“Value you entered was 0\n”);}else if ( value < 0 ) {
printf(“%d is negative.\n”, value) ;p t ( %d s egat e.\ , a ue) ;}else{{
printf(“%d is positive.\n”, value) ;}
![Page 37: C Programming: Arithmetic and Logic Operationsis 4. Preincrement Operator • If the ++ is before the variable, then the incrementing is done first (a ... Structured Programming •](https://reader035.fdocuments.us/reader035/viewer/2022081405/5f0a35fb7e708231d42a8c75/html5/thumbnails/37.jpg)
Bad Example : 2 if 1 elseif ( n > 0 )
if ( a > b )az=a;
else z=b;
if ( n > 0 ){if (a> b)
if ( n > 0 )if ( a > b )
; if (a> b)z=a;
}elseif ( a > b )
z=a;else
else z=b;
z=b;
Indentation will not ensure result : elsematch with closest if Code of Red box behaves like Code of Green box
![Page 38: C Programming: Arithmetic and Logic Operationsis 4. Preincrement Operator • If the ++ is before the variable, then the incrementing is done first (a ... Structured Programming •](https://reader035.fdocuments.us/reader035/viewer/2022081405/5f0a35fb7e708231d42a8c75/html5/thumbnails/38.jpg)
Gotcha! = versus == int a = 2 ;if ( a = 1 )/* semantic(logic) Err! */( )/ ( g ) /{
printf (“a is one\n”) ;printf ( a is one\n ) ;}else if (a == 2 )else if (a == 2 ){
printf (“a is two\n”) ;printf ( a is two\n ) ;} else {
i tf (“ i %d\ ” )printf (“a is %d\n”, a) ;}
![Page 39: C Programming: Arithmetic and Logic Operationsis 4. Preincrement Operator • If the ++ is before the variable, then the incrementing is done first (a ... Structured Programming •](https://reader035.fdocuments.us/reader035/viewer/2022081405/5f0a35fb7e708231d42a8c75/html5/thumbnails/39.jpg)
Gotcha ..• The statement if (a = 1) is syntactically correct, so no error message will be produced. (Some compilers g p ( pwill produce a warning.) However, a semantic (logic) error will occur.
h l h l• An assignment expression has a value ‐‐ the value being assigned. In this case the value being assigned is 1, which is true.is 1, which is true.
• If the value being assigned was 0, then the expression would evaluate to 0, which is false.
• This is a VERY common error. So, if your if‐else structure always executes the same, look for this typographical errortypographical error.
![Page 40: C Programming: Arithmetic and Logic Operationsis 4. Preincrement Operator • If the ++ is before the variable, then the incrementing is done first (a ... Structured Programming •](https://reader035.fdocuments.us/reader035/viewer/2022081405/5f0a35fb7e708231d42a8c75/html5/thumbnails/40.jpg)
Logical Operators• So far we have seen only simple conditions.
if ( count > 10 ) . . .
• Sometimes we need to test multiple conditions in order to make a decisionorder to make a decision.
• Logical operators are used for combining simple conditions to make complex conditions.conditions to make complex conditions.
&& is AND if ( x > 5 && y < 6 )
|| is OR if ( z == 0 || x > 10 )
! is NOT if (! (bob > 42) )! is NOT if (! (bob > 42) )
![Page 41: C Programming: Arithmetic and Logic Operationsis 4. Preincrement Operator • If the ++ is before the variable, then the incrementing is done first (a ... Structured Programming •](https://reader035.fdocuments.us/reader035/viewer/2022081405/5f0a35fb7e708231d42a8c75/html5/thumbnails/41.jpg)
Example Use of &&Example Use of &&
if ( age < 1 && gender == ‘m’){{
printf (“Infant boy\n”) ;}
![Page 42: C Programming: Arithmetic and Logic Operationsis 4. Preincrement Operator • If the ++ is before the variable, then the incrementing is done first (a ... Structured Programming •](https://reader035.fdocuments.us/reader035/viewer/2022081405/5f0a35fb7e708231d42a8c75/html5/thumbnails/42.jpg)
Truth Table for &&Truth Table for &&
Expression Expression Expression && ExpressionExpression1 Expression2 Expression1 && Expression2
0 0 00 0 0
0 nonzero 0
nonzero 0 0
nonzero nonzero 1
Exp1 && Exp2 && … && Expn will evaluate to 1 (true) onlyExp1 && Exp2 && … && Expn will evaluate to 1 (true) only if ALL subconditions are true.
![Page 43: C Programming: Arithmetic and Logic Operationsis 4. Preincrement Operator • If the ++ is before the variable, then the incrementing is done first (a ... Structured Programming •](https://reader035.fdocuments.us/reader035/viewer/2022081405/5f0a35fb7e708231d42a8c75/html5/thumbnails/43.jpg)
Example Use of ||Example Use of ||
if (grade==‘E’ || grade==‘F’){{printf(“See you next semester!\n”) ;}}
![Page 44: C Programming: Arithmetic and Logic Operationsis 4. Preincrement Operator • If the ++ is before the variable, then the incrementing is done first (a ... Structured Programming •](https://reader035.fdocuments.us/reader035/viewer/2022081405/5f0a35fb7e708231d42a8c75/html5/thumbnails/44.jpg)
Truth Table for ||Truth Table for ||
Expression Expression Expression || ExpressionExpression1 Expression2 Expression1 || Expression2
0 0 00 0 0
0 nonzero 1
nonzero 0 1
nonzero nonzero 1
Exp1 && Exp2 && … && Expn will evaluate to 1 (true) ifExp1 && Exp2 && … && Expn will evaluate to 1 (true) if only ONE subcondition is true.
![Page 45: C Programming: Arithmetic and Logic Operationsis 4. Preincrement Operator • If the ++ is before the variable, then the incrementing is done first (a ... Structured Programming •](https://reader035.fdocuments.us/reader035/viewer/2022081405/5f0a35fb7e708231d42a8c75/html5/thumbnails/45.jpg)
Example Use of !Example Use of !
if (!( 2)) /* S ( ! 2) */if (!(x==2)) /* Same as (x!=2) */
{{
printf(“x is not equal to 2”) ;
}
![Page 46: C Programming: Arithmetic and Logic Operationsis 4. Preincrement Operator • If the ++ is before the variable, then the incrementing is done first (a ... Structured Programming •](https://reader035.fdocuments.us/reader035/viewer/2022081405/5f0a35fb7e708231d42a8c75/html5/thumbnails/46.jpg)
Truth Table for !Truth Table for !
Expression ! ExpressionExpression ! Expression
0 10 1
nonzero 0
![Page 47: C Programming: Arithmetic and Logic Operationsis 4. Preincrement Operator • If the ++ is before the variable, then the incrementing is done first (a ... Structured Programming •](https://reader035.fdocuments.us/reader035/viewer/2022081405/5f0a35fb7e708231d42a8c75/html5/thumbnails/47.jpg)
Operator Precedence and AssociativityOperator Precedence and AssociativityPrecedence Associativity
/( ) left to right/inside‐out++ ‐‐ ! + (unary) ‐ (unary) (type) right to left* / % left to right* / % left to right+ (addition) ‐ (subtraction) left to right< <= > >= left ot right left ot right== != left to right&& left to right|| left to right= += ‐= *= /= %= right to left, (comma) right to left
![Page 48: C Programming: Arithmetic and Logic Operationsis 4. Preincrement Operator • If the ++ is before the variable, then the incrementing is done first (a ... Structured Programming •](https://reader035.fdocuments.us/reader035/viewer/2022081405/5f0a35fb7e708231d42a8c75/html5/thumbnails/48.jpg)
Thanks
48