分支语句
1.if语句
1.1 单分支if语句
if (表达式)
语句;
表达式成立(为真),则语句执行,表达式不成立(为假),则语句不执行。
在C语言中,0为假,非0表示真,也就是表达式的结果如果是0,则语句不执行,表达式的结果如果是不是0,则语句执行。
例⼦:输⼊⼀个整数,判断是否为奇数
#include <stdio.h>
int main()
{
int num = 0;
scanf("%d", &num);
if (num % 2 == 1)
printf("%d 是奇数\n", num);
return 0;
}
1.2 双分支if语句
if (表达式)
语句1;
else
语句2;
如果我们要if语句同时控制2条语句,就需要使用{}将代码括起来,
例子:输⼊⼀个年龄,>= 18岁就输出:成年 可以谈恋爱。否则就输出:未成年 不可以谈恋爱
#include <stdio.h>
int main()
{
int age = 0;
scanf("%d", &age);
if(age >= 18) //if 后使⽤{}控制多条语句-这个块也叫:程序块,或者复合语句
{
printf("成年\n");
printf("可以谈恋爱\n");
}
else
{
printf("未成年\n");
printf("不可以谈恋爱\n");
return 0;
}
1.3 if语句的嵌套
在 if else 语句中, else 可以与另⼀个 if 语句连用,构成多重判断。
如果有多个 if 和 else ,可以记住这样一条规则, else 总是跟最接近的 if 匹配。
例子:输⼊一个人的年龄;如果年龄<18岁,打印"少年";如果年龄在18岁⾄44岁打印"青年";如果年龄在45岁至59岁打印"中老年";如果年龄在60岁⾄89岁打印"老年";如果90岁以上打印"老寿星“。
#include <stdio.h>
int main()
{
int age = 0;
scanf("%d", &age);
if(age<18)
{
printf("少年\n");
}
else
{
if(age<=44)
{
printf("⻘年\n");
}
else
{
if(age<=59)
{
printf("中⽼年\n");
}
else
{
if(age<=90)
{
printf("⽼年\n");
}
else
{
printf("⽼寿星\n");
}
}
}
}
return 0;
}
1.4 多分支if语句
if (表达式1)
语句1;
else if (表达式2)
语句2;
…
else if (表达式n-1)
语句n-1;
else
语句n;
例子:输入一个字符,若该字符为小写字母,则将其转化为大写字母;若该字符为大写字母,则将其转化为小写字母;否则转化为ASCII码表中该字符的下一个字符。
#include <stdio.h>
int main()
{
char a, b;
printf("请输入一个字符:");
a = getchar();
if (a >= 'a' && a <= 'z')
{
b = a - 32;
}
else if (a >= 'A' && a <= 'Z')
{
b = a + 32;
}
else
{
b = a + 1;
}
putchar(b);
return 0;
}
2.switch语句
switch (表达式)
{
case 常量表达式1: 语句1; break;
case 常量表达式2: 语句2; break;
…
case 常量表达式n: 语句n; break;
default : 语句n+1; break;
}
switch 语句是⼀种特殊形式的 if…else 结构,用于判断条件有多个结果的情况。它把多重的 else if 改成更易用、可读性更好的形式。
(1)switch后的表达式可以是任何表达式,其值只能为整型、字符型、枚举型之一。
(2)每个case后面的常量表达式的值互不相同,否则就会出现互相矛盾的现象。
(3)各个case和default的出现次序不影响执行结果。
(4)可以让多个case共用一组执行语句。
(5)switch语句允许嵌套。
例子:输⼊⼀个1~7的数字,打印对应的星期几。输⼊:1 ;输出:星期⼀;输⼊:2 ;输出:星期⼆;输⼊:3 ;输出:星期三;输⼊:4; 输出:星期四;输⼊:5 ;输出:星期五;输⼊:6 ;输出:星期六;输⼊:7 ;输出:星期天。
#include <stdio.h>
int main()
{
int day = 0;
scanf("%d", &day);
switch (day)
{
case 1:
printf("星期⼀\n");
break;
case 2:
printf("星期⼆\n");
break;
case 3:
printf("星期三\n");
break;
case 4:
printf("星期四\n");
break;
case 5:
printf("星期五\n");
break;
case 6:
printf("星期六\n");
break;
case 7:
printf("星期天\n");
break;
}
return 0;
}
循环执行语句
1.while语句
while (表达式)
循环体;
首先上来就是执行判断表达式,表达式的值为0,循环直接结束;表达式的值不为0,则执行循环语句,语句执行完后再继续判断,是否进行下一次判断。
例子:在屏幕上打印 1~10 的值
#include <stdio.h>
int main()
{
int i = 1;
while (i <= 10)
{
printf("%d ", i);
i++;
}
return 0;
}
2.for语句
for (表达式1; 表达式2; 表达式3)
语句;
表达式1 用于循环变量的初始化
表达式2 用于循环结束条件的判断
表达式3 用于循环变量的调整
例子:在屏幕上打印1~10的值
#include <stdio.h>
int main()
{
int i = 0;
for (i = 1; i <= 10; i++)
{
printf("%d ", i);
}
return 0;
}
3.do while语句
do
循环体;
while (表达式);
do while 循环先直接进入循环体,执行循环语句,然后再执行while后的判断表达式,表达式为真,就会进行下一次,表达式为假,则不再继续循环。
例子:在屏幕上打印1~10的值
#include <stdio.h>
int main()
{
int i = 1;
do
{
printf("%d ", i);
i = i + 1;
} while (i <= 10);
return 0;
}