文章目录
1.if语句
2.关系操作符
3.逻辑操作符
4.switch语句
5.while循环
6.for循环
7.do——while循环
8.break和continue语句
9.循环的嵌套
10.goto语句
前言
C语⾔是结构化的程序设计语⾔,这⾥的结构指的是顺序结构、选择结构、循环结构,C语⾔是能够实 现这三种结构的,其实我们如果仔细分析,我们⽇常所⻅的事情都可以拆分为这三种结构或者这三种 结构的组合。 我们可以使⽤ if 、 switch 实现分⽀结构,使⽤ for 、 while 、 do while 实现循环结构。
1.if语句
1.1if
语法形式如下:
if ( 表达式 )
语句
表达式成⽴(为真),则语句执⾏,表达式不成立(为假),则语句不执行,在C语言中,0为假,非0即表示为真。
例子:输入一个整数,判断是否为奇数。
#include <stdio.h>
int main()
{
int num = 0;
scanf("%d", &num);
if(num % 2 == 1)
printf("%d 是奇数\n", num);
return 0;
}
1.2else
如上,如果一个数不是技术那么便是偶数,这又该如何表示?
这里就用到了else语句,其语法形式如下:
if ( 表达式 )
语句1
else
语句2
我们用判断一个数是奇数还是偶数来演示:
#include <stdio.h>
int main()
{
int num = 0;
scanf("%d", &num);
if(num % 2 == 1)
printf("%d 是奇数\n", num);
else
printf("%d 是偶数\n", num);
return 0;
}
1.3分支中包含多条语句
#include <stdio.h>
int main()
{
int age = 0;
scanf("%d", &age);
if(age >= 18) //if 后使⽤{} 控制多条语句-这个块也叫:程序块,或者复合语句
{
printf("成年了\n");
printf("可以学驾照了\n");
}
else //else 后使⽤{}控制多条语句-这个块也叫:程序块,或者复合语句
{
printf("未成年\n");
printf("不可以学驾照\n");
}
return 0;
}
注意 如果if内的语句列表只有一条 可以省略{} 但是如果包含多条语句 就必须包含{}
所以不管是一条语句还是多条语句都加上{}是最好的
1.4嵌套if
在if——else语句中,else可以与另⼀个 if 语句连用,构成多重判断。
⽐如:要求输⼊⼀个整数,如果是正数,再判断是奇数还是偶数,并输出;如果不是正数则输出不 是整数:
#include <stdio.h>
int main()
{
int num = 0;
scanf("%d", &num);
if(num>0)
{
if(num%2 == 0)
printf("偶数\n");
else
printf("奇数\n");
}
else
{
printf("输⼊的值是负数\n");
}
return 0;
}
其中
为嵌套的if语句
以上就是嵌套if语句的语法,有了嵌套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.5悬空else问题
如果有多个if 和 else可以记住这样⼀条规则,else 总是跟最接近的 if 匹配。
看下面的代码
#include <stdio.h>
int main()
{
int a = 0;
int b = 2;
if(a == 1)
if(b == 2)
printf("hehe\n");
else
printf("haha\n");
return 0;
}
结果为空,即无输出
上面的代码排版,让 else 和第⼀个 if 语句对齐,让我们以为 else 是和第⼀个if匹配的,当 if 语句不成⽴的时候,⾃然想到的就是执⾏ else ⼦句,打印 haha ,但实际上 else 是和第⼆个 if 进⾏匹配的,这样后边的 if...else 语句是嵌套在第⼀个 if 语句中的,如果第⼀个 if 语句就不 成⽴,嵌套 if 和 else 就没机会执行了,最终啥都不打印。
这样看更清晰:
#include <stdio.h>
int main()
{
int a = 0;
int b = 2;
if(a == 1)
{
if(b == 2)
printf("hehe\n");
else
printf("haha\n");
}
return 0;
}
若要使else与第一个if匹配,可改为:
#include <stdio.h>
int main()
{
int a = 0;
int b = 2;
if(a == 1)
{
if(b == 2)
printf("hehe\n");
}
else
{
printf("haha\n");
}
return 0;
}