1. Tutorial Map

      IntroductionPointers, arrays, stringsFile IOLinked lists, trees, recursion

      If statements in C

      The ability to control the flow of your program, letting it make decisions onwhat code to execute, is valuable to the programmer. The if statement allowsyou to control if a program enters a section of code or not based on whether agiven condition is true or false. One of the important functions of the ifstatement is that it allows the program to select an action based upon theuser's input. For example, by using an if statement to check a user-enteredpassword, your program can decide whether a user is allowed access to theprogram.



      Without a conditional statement such as the if statement, programs would runalmost the exact same way every time, always following the same sequence offunction calls. If statements allow the flow of the program to be changed, which leads to more interesting code.

      Before discussing the actual structure of the if statement, let us examine themeaning of TRUE and FALSE in computer terminology. A true statement is onethat evaluates to a nonzero number. A false statement evaluates to zero. Whenyou perform comparison with the relational operators, the operator will return1 if the comparison is true, or 0 if the comparison is false. For example, thecheck 0 == 2 evaluates to 0. The check 2 == 2 evaluates to a 1. If thisconfuses you, try to use a printf statement to output the result of thosevarious comparisons (for example printf ( "%d", 2 == 1 );)

      When programming, the aim of the program will often require the checking ofone value stored by a variable against another value to determine whether oneis larger, smaller, or equal to the other.

      There are a number of operators that allow these checks.

      Here are the relational operators, as they are known, along with examples:
      >     greater than              5 > 4 is TRUE<     less than                 4 < 5 is TRUE>=    greater than or equal     4 >= 4 is TRUE<=    less than or equal        3 <= 4 is TRUE==    equal to                  5 == 5 is TRUE!=    not equal to              5 != 4 is TRUE
      It is highly probable that you have seen these before, probably with slightlydifferent symbols. They should not present any hindrance to understanding. Nowthat you understand TRUE and FALSE well as the comparison operators, let uslook at the actual structure of if statements.

      Basic If Syntax

      The structure of an if statement is as follows:
      if ( statement is TRUE )    Execute this line of code
      Here is a simple example that shows the syntax:
      if ( 5 < 10 )    printf( "Five is now less than ten, that's a big surprise" );
      Here, we're just evaluating the statement, "is five less than ten", to see ifit is true or not; with any luck, it is! If you want, you can write yourown full program including stdio.h and put this in the main function and runit to test.

      To have more than one statement execute after an if statement that evaluatesto true, use braces, like we did with the body of the main function. Anythinginside braces is called a compound statement, or a block. When using ifstatements, the code that depends on the if statement is called the "body" ofthe if statement.

      For example:
      if ( TRUE ) {    /* between the braces is the body of the if statement */    Execute all statements inside the body}
      I recommend always putting braces following if statements. If you do this,you never have to remember to put them in when you want more than onestatement to be executed, and you make the body of the if statement morevisually clear.

      Else

      Sometimes when the condition in an if statement evaluates to false, it wouldbe nice to execute some code instead of the code executed when the statementevaluates to true. The "else" statement effectively says that whatever codeafter it (whether a single line or code between brackets) is executed if theif statement is FALSE.

      It can look like this:
      if ( TRUE ) {    /* Execute these statements if TRUE */}else {    /* Execute these statements if FALSE */}

      Else if

      Another use of else is when there are multiple conditional statements that mayall evaluate to true, yet you want only one if statement's body to execute.You can use an "else if" statement following an if statement and its body;that way, if the first statement is true, the "else if" will be ignored, butif the if statement is false, it will then check the condition for the else ifstatement. If the if statement was true the else statement will not bechecked. It is possible to use numerous else if statements to ensure that onlyone block of code is executed.

      Let's look at a simple program for you to try out on your own.
      #include <stdio.h>int main()                            /* Most important part of the program!  */{    int age;                          /* Need a variable... */      printf( "Please enter your age" );  /* Asks for age */    scanf( "%d", &age );                 /* The input is put in age */    if ( age < 100 ) {                  /* If the age is less than 100 */        printf ("You are pretty young!\n" ); /* Just to show you it works... */    }    else if ( age == 100 ) {            /* I use else just to show an example */         printf( "You are old\n" );           }    else {        printf( "You are really old\n" );     /* Executed if no other statement is */    }  return 0;}

      More interesting conditions using boolean operators

      Boolean operators allow you to create more complex conditional statements. Forexample, if you wish to check if a variable is both greater than five and lessthan ten, you could use the Boolean AND to ensure both var > 5 and var <10 are true. In the following discussion of Boolean operators, I willcapitalize the Boolean operators in order to distinguish them from normalEnglish. The actual C operators of equivalent function will be describedfurther along into the tutorial - the C symbols are not: OR, AND, NOT, althoughthey are of equivalent function.

      When using if statements, you will often wish to check multiple different conditions. You must understand the Boolean operators OR, NOT, and AND. The boolean operators function in a similar way to the comparison operators: each returns 0 if evaluates to FALSE or 1 if it evaluates to TRUE.

      NOT: The NOT operator accepts one input. If that input is TRUE, it returnsFALSE, and if that input is FALSE, it returns TRUE. For example, NOT (1)evaluates to 0, and NOT (0) evaluates to 1. NOT (any number but zero) evaluatesto 0. In C NOT is written as !. NOT is evaluated prior to both AND andOR.

      AND: This is another important command. AND returns TRUE if both inputs areTRUE (if 'this' AND 'that' are true). (1) AND (0) would evaluate to zerobecause one of the inputs is false (both must be TRUE for it to evaluate toTRUE). (1) AND (1) evaluates to 1. (any number but 0) AND (0) evaluates to 0.The AND operator is written && in C. Do not be confused by thinking itchecks equality between numbers: it does not. Keep in mind that the ANDoperator is evaluated before the OR operator.

      OR: Very useful is the OR statement! If either (or both) of the two values itchecks are TRUE then it returns TRUE. For example, (1) OR (0) evaluates to 1.(0) OR (0) evaluates to 0. The OR is written as || in C. Those are the pipecharacters. On your keyboard, they may look like a stretched colon. On mycomputer the pipe shares its key with \. Keep in mind that OR will beevaluated after AND.

      It is possible to combine several Boolean operators in a single statement;often you will find doing so to be of great value when creating complexexpressions for if statements. What is !(1 && 0)? Of course, it would be TRUE.It is true is because 1 && 0 evaluates to 0 and !0 evaluates to TRUE(i.e., 1).

      Try some of these - they're not too hard. If you have questions about them, feel free to stop by our forums.
      A. !( 1 || 0 )         ANSWER: 0B. !( 1 || 1 && 0 )    ANSWER: 0 (AND is evaluated before OR)C. !( ( 1 || 0 ) && 0 )  ANSWER: 1 (Parenthesis are useful)
      If you find you enjoyed this section, then you might want to look more at Boolean Algebra.


      Quiz yourself
      Previous: The Basics of C
      Next: Loops
      Back to C Tutorial Index



          1. http://www.addi1fsn.tw | http://m.addi1fsn.tw | http://wap.addi1fsn.tw | http://3g.addi1fsn.tw | http://4g.addi1fsn.tw | http://5g.addi1fsn.tw | http://mobile.addi1fsn.tw | http://vip.addi1fsn.tw | http://ios.addi1fsn.tw | http://anzhuo.addi1fsn.tw | http://5e.addi1fsn.tw | http://a2.addi1fsn.tw | http://1c5.addi1fsn.tw | http://c.addi1fsn.tw | http://43d23.addi1fsn.tw | http://6070ef.addi1fsn.tw | 什么网址能玩羞辱尤娜