程序流程结构
1.1概述
C语言支持最基本的三种程序运行结构:顺序结构、选择结构、循环结构。
-
顺序结构:程序按顺序执行,不发生跳转。
-
选择结构:依据是否满足条件,有选择的执行相应功能。
-
循环结构:依据条件是否满足,循环多次执行某段代码。
1.2选择结构
1.2.1 if语句
if语句的定义:当满足条件语句时执行{}内的语句,否则不执行{}内语句。
#include <stdio.h>
int main()
{
int a = 1;
int b = 2;
if (a > b) // 为真执行语句 为假不执行
{
printf("%d\n", a);
}
return 0;
}
1.2.3if…else语句
if-else语句的定义:当满足条件语句时(条件语句结果非零)执行{}内语句,否则执行elas后的语句。
#include <stdio.h>
int main()
{
int a = 1;
int b = 2;
if (a > b)
{
printf("%d\n", a);
}
else
{
printf("%d\n", b);
}
return 0;
}
1.2.4 if…else if…else语句
多个else if语句定义:当不满足条件1时,继续判断下一条件语句,直到满足条件语句时,进入相应语句中执行,若都不满足所有条件语句,则执行最后 else 中的语句。
#include <stdio.h>
int main()
{
unsigned int a;
scanf("%u", &a);
if (a < 10)
{
printf("个位\n");
}
else if (a < 100)
{
printf("十位\n");
}
else if (a < 1000)
{
printf("百位\n");
}
else
{
printf("很大\n");
}
return 0;
}
1.2.5三目运算符
跟 if---else同种执行结构
#include <stdio.h>
int main()
{
int a = 10;
int b = 20;
int c;
if (a > b)
{
c = a;
}
else
{
c = b;
}
printf("c1 = %d\n", c);
a = 1;
b = 2;
c = ( a > b ? a : b );
printf("c2 = %d\n", c);
return 0;
}
1.2.6 switch语句
定义格式:通过表达式得出数值,若得出的数值与下面case 后的数值对应,则执行相应的语句,若没有相对应的数值则执行default 后面的语句。
switch(表达式) //注意:没有 ”;” 号
{
case 值1: 语句1;break; //注意:不能没有break 需跳出switch语句 否则继续
//执行往后的case 语句 直到全部case语句执行完为止
case 值2: 语句2;break;
case 值3:{语句3;语句4;。。。;}break; //case后的语句可以是多条语句集
。。。
default:语句5;break;//若表达式中没对应的值与之对应 则执行语句5后跳出
}
#include <stdio.h>
int main()
{
char c;
c = getchar();
switch (c) //参数只能是整型变量
{
case '1':
printf("OK\n");
break;//switch遇到break就中断了
case '2':
printf("not OK\n");
break;
default://如果上面的条件都不满足,那么执行default
printf("are u ok?\n");
}
return 0;
}
1.3循环语句
1.3.1while语句
while语句的定义格式:当循环条件为逻辑0时不进入循环体;否则都会进入循环体,进行循环。
#include <stdio.h>
int main()
{
int a = 20;
while (a > 10)
{
scanf("%d", &a);
printf("a = %d\n", a);
}
return 0;
}
1.3.2 do…while语句
do-while语句的定义格式:先执行循环体,再判断循环条件,若满足条件则继续进入循环体。
注意:先执行一次循环,再判断循环条件是否满足。
#include <stdio.h>
int main()
{
int a = 1;
do
{
a++;
printf("a = %d\n", a);
} while (a < 10);
return 0;
}
1.3.3 for 语句
for语句的定义格式:当表达式2为真时,执行循环体语句否则不进入循环。
for(表达式1;表达式2;表达式3) //注意表达式之间用 ”;” 隔开 括号后面没“;”
{
循环体;
}
#include <stdio.h>
int main()
{
int i;
int sum = 0;
for (i = 0; i <= 100; i++)
{
sum += i;
}
printf("sum = %d\n", sum);
return 0;
}
1.3.4跳转语句break、continue、goto
break 语句
在switch条件语句和循环语句中都可以使用break
语句:
-
当它出现在
switch
条件语句中时,作用是终止某个case
并跳出switch
结构。 -
当它出现在循环语句中,作用是跳出当前内循环语句,执行后面的代码。
-
当它出现在嵌套循环语句中,跳出最近的内循环语句,执行后面的代码
#include <stdio.h>
int main()
{
int i = 0;
while (1)
{
i++;
printf("i = %d\n", i);
if (i == 10)
{
break; //跳出while循环
}
}
int flag = 0;
int m = 0;
int n = 0;
for (m = 0; m < 10; m++)
{
for (n = 0; n < 10; n++)
{
if (n == 5)
{
flag = 1;
break; //跳出for (n = 0; n < 10; n++)
}
}
if (flag == 1)
{
break; //跳出for (m = 0; m < 10; m++)
}
}
return 0;
}
输出结果:
i = 1
i = 2
i = 3
i = 4
i = 5
i = 6
i = 7
i = 8
i = 9
i = 10
continue语句
在循环语句中,如果希望立即终止本次循环,并执行下一次循环,此时就需要使用continue
语句
#include<stdio.h>
int main()
{
int sum = 0; //定义变量sum
for (int i = 1; i <= 100; i++)
{
if (i % 2 == 0) //如果i是一个偶数,执行if语句中的代码
{
continue; //结束本次循环
}
sum += i; //实现sum和i的累加
}
printf("sum = %d\n", sum);
return 0;
}
goto语句(无条件跳转,尽量少用)
#include <stdio.h>
int main()
{
goto End; //无条件跳转到End的标识
printf("aaaaaaaaa\n");
End:
printf("bbbbbbbb\n");
return 0;
}
总结:
- C语言中的语句很多,用的最多的就是九条语句,而每条语句的用法可解决很多逻辑上的问题
- 可练习的题目很多,针对的一些逻辑题目,需多加练习
- 期待明天的练习!!