目录
一、流程控制类语句总结
1、if().....else... (条件语句)
2、for().... (循环语句)
3、while().... (循环语句)
4、do...whlie() (循环语句)
5、continue (结束本次循环语句)
6、break (中止执行switch或循环语句)
7、switch (多分支选择语句)
8、return (从函数返回语句)
二、C语言提供6种关系运算符:
1、优先级相同(高)
< (小于)
<= (小于或等于)
> (大于)
>= (大于或等于)
2、优先级相同(低)
== (等于)
!= (不等于)
三、逻辑运算符汇总
运算符 含义 举例 说明 && 逻辑与 a && b 如果a和b都为真,否则为假 || 逻辑或 a || b 如果a和b只有一个以上为真,则结果为真,二者为假时都为假 ! 逻辑非 a!
如果a为假,!a为真,如果a为真,则!a为假
四、选择结构
1、if...else...语句
//语法
if (表达式)
{
语句1
}
else
{
语句2
}
执行逻辑:如果表达式1成立(表达式1的结果为逻辑真),则执行语句1,否则执行语句2
1.1(基本运用)
#include <stdio.h>
int main()
{
int money;
printf("你手里有多少钱?\n");
scanf("%d",&money);
if(money >= 100){
printf("借给我50,谢谢。\n");
}else{
printf("没事了我就问问。\n");
}
return 0;
}
1.2(选择结构的嵌套)
//语法
if (表达式1)
{
if (表达式2)
{
语句1
}
else
{
语句2
}
}
else //else if ()
{
if (表达式3)
{
语句3
}
else
{
语句4
}
}
//案例
#include <stdio.h>
int main()
{
int t; //体育老师
int y; //语文老师
printf("体育老师生病了吗?yes = 1 or no = 2\n");
scanf("%d",&t);
if (t == 1){
printf("语文老师有课吗?yes = 1 or no = 2\n");
scanf("%d",&y);
if (y != 2)
{
printf("上语文课\n");
}
else
{
printf("上自习");
}
}
else
{
printf("上体育课\n");
}
printf("讨论结束!/n");
return 0;
}
2、switch...case 语句
//语法
switch (表达式)
{
case 常量表达式1: 语句1;break;
case 常量表达式2: 语句2;break;
...
case 常量表达式n-1: 语句n-1;break;
default : 语句n
}
执行逻辑:计算"表达式"的值。并逐个与其后的常量表达式值相比较,当表达式的值与某个常量表达式的 值相等时,即执行其后的语句,然后不再进行判断,继续执行后面所有case后的语句。如表达 式的值与所有case后的常量表达式均不相同时,则执行default后的语句。
2.1
/*
学生成绩划分
*/
#include <stdio.h>
int main()
{
int score;
puts("请输入学生的分数。");
scanf("%d",&score);
switch(score/10){
case 0:
case 1:
case 2:
case 3:
case 4:
case 5:
printf("等级为D,不合格\n");
break;
case 6:
case 7:
printf("等级为C,及格\n");
break;
case 8:
case 9:
printf("等级为B,良好\n");
break;
case 10:
printf("等级为A,优秀\n");
break;
default:
printf("成绩非法.\n");
}
puts("done!");
return 0;
}
五、循环控制语句
1、while语句
1.1
/*
循环输出10次“大狗熊”
*/
#include <stdio.h>
int main()
{
int num;
num = 10;
while(num){
puts("大狗熊");
num --;
}
return 0;
}
1.2
/*
求1+2+3+4+5+6+...+100的和
*/
#include <stdio.h>
int main()
{
int sum = 0;
int data = 1;
while(data <= 100){
sum = sum + data;
data++;
}
printf("0-100的和是:%d\n",sum);
return 0;
}
2、do...whlie 语句
//语法
do{
语句
}while (表达式);
执行逻辑:这个循环与 while 循环的不同在于:它先执行循环中的语句,然后再判断表达式是否为真,如果为 真则继续循环;如果为假,则终止循环。因此, do-while 循环至少要执行一次循环语句。其执行 过程可用下图表示。
#include <stdio.h>
int main()
{
int sum = 0;
int i = 1;
do{
sum += 1;
i++;
}
while(i <= 100);
printf("%d\n",sum);
printf("%d\n",i);
return 0;
}
总结:do~ while和while的区别在于:do~while至少会执行一次循环体语句
3、for 语句
//语法
for(表达式1; 表达式2; 表达式3)
{
语句
}
执行逻辑:1. 先求解表达式1。2. 求解表达式2,若其值为真(非0),则执行for语句中指定的内嵌语句,然后执行下面第3)步;若其值为假(O),则结束循环,转到第5)步。3. 求解表达式3。4. 转回上面第2)步继续执行。5. 循环结束,执行for语句下面的一个语句。
3.1(示例代码)
#include <stdio.h>
int main()
{
int sum = 0;
int i;
for(i = 1;i <= 100;i++)
{
sum += i;
}
printf("sum=%d\n",sum);
printf("i=%d\n",i);
return 0;
}
3.2(循环的嵌套)
总结:循环逻辑种有循环逻辑
//循环的嵌套(输出九九乘法表)、
#include <stdio.h>
int main()
{
int i,j;
for(i = 1;i <= 9;i++)
{
for(j = 1;j <= i;j++){
printf("%d*%d=%d\t",i,j,i*j);
}
printf("\n");
}
return 0;
}
六、补充知识点
1、break 语句
1.1 break在switch语句中的使用
break用于switch中时,可使程序跳出switch,如果没有break语句,则会继续执行下一个case逻辑中的语句(不论case后面的表示式结果与switch后的表达式结果是否相等),直到遇到break才 会跳出switch。
//break在switch语句中的使用
#include <stdio.h>
int main()
{
int x;
printf("请输入1-4的数字\n");
scanf("%d",&x);
printf("输出后返回的数\n");
switch(x){
case 1:
printf("1\n");
break;
case 2:
printf("2\n");
case 3:
printf("3\n");
break;
case 4:
printf("4\n");
break;
}
return 0;
}
注意:上面的例子中因为case 2 逻辑后没有break,所以当x为2时,输出结果为 2 3
1.2 break在循环语句中的使用
当break语句用于do-while、for、while循环语句中时,可使程序 终止循环 而执行循环后面的语句,通常break语句总是与if语句联在一起。即满足条件时便跳出循环。
#include <stdio.h>
int main()
{
int m, n;
for (m = 0; m < 10; m++)
{
for (n = 0; n < 10; n++)
{
if (n == 3)
break;
printf("%d\n", n);
}
}
return 0;
}
2、continue 语句
continue语句运用于循环结构中,作用是结束本次循环,继续下次循环
2.1 continue 语句在循环结构中的使用
#include <stdio.h>
int main()
{
int m, n;
for (m = 0; m < 10; m++)
{
for (n = 0; n < 10; n++)
{
if (n == 3)
continue;
printf("%d\n", n);
}
}
return 0;
}
当执行到continue语句时,此次循环结构中continue语句后的其他所有语句都不会被执行到