# とらりもん - 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".

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.

==
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]]]