とらりもんHOME  Index  Search  Changes  Login

とらりもん - C intro 4. if statement Diff

  • Added parts are displayed like this.
  • Deleted parts are displayed like this.

When you want to make a judgment, you can do it by {{(fontc(if, red)}} statement. Here is an example, which judges whether a given number is even or odd. Let's input, compile, and run it!

    1. /* iftest.c */
    2. /* compile: $ gcc iftest.c -o iftest */
    3. /* 2017/02/18 K. Nasahara */
    4. # include <stdio.h>
    5. main()
    6. {int x;
    7. printf("Give me a number!\n");
    8. scanf("%d", &x);
    9. if (x%2==0) printf("%d is an even number!\n", x);
   10. else printf("%d is an odd number!\n", x);
   11. }

Note: You must not input the numbers at the head of each line.

$ gcc iftest.c -o iftest
$ ./iftest
Give me a number!
4
4 is an even number!
$ ./iftest
Give me a number!
7
7 is an odd number!
$

Now let's interpret the codes. What is important is "if ( ... )" in line 9. This investigates a condition specified in "( )" and, if true, it goes on to the following commands (which exists on the same line as if statement, or the lines in "{ }" just after the if statement). If not true, it jumps to the commands after "else".

Now please watch
x%2
in the "if" statement. It gives you a residue of division. For example, 5%2=1. For another example, 8%3=2. This calculus is called {{fontc(modulo, red)}}. We use modulo in many places in the programming.

Please watch
==
in "x%2==0". The meaning of "double equal" is important. If it is a single equal "=", it does not work as you wish.

'''Exercise 4-1''' Try to replace "==" with "=" in line 9. What happens?

'''Exercise 4-2''' Try to delete line 10. What happens?

Next example. This is a program which finds "a number which can be divided by 3 but not by 2":

     1. /* iftest2.c */
     2. /* compile: $ gcc iftest2.c -o iftest2 */
     3. /* 2017/02/18 K. Nasahara */
     4. # include <stdio.h>
     5. main() //start of the main part
     6. {
     7. int x;                          // declare a variable x
     8. printf("Give me a number!\n");  // display a message
     9. scanf("%d", &x);                // Get a value for x from a user
    10. if (x%3==0 && x%2!=0) // judge condition
    11. printf("It's my favorite number!\n");  // in case of true
    12. else printf("I don't like it...\n");   // in case of false
    13. }

$ ./iftest2
Give me a number!
9
It's my favorite number!
$ ./iftest2
Give me a number!
7
I don't like it...
$ ./iftest2
Give me a number!
6
I don't like it...
$

Watch the line 10. When we want both of two conditions must me true, we combine them by "&&". A single "&" does not work.

Watch "x%2!=0", too. Consider the meaning of "!=". You are smart enough to find the answer by guessing.

'''Exercise 4-3''' Try rewriting "&&" with "||". What happens? Guess the meaning of "||".

[Go back to [[C language introduction]]]