程序流程结构
顺序结构、选择结构、循环结构
选择结构
if语句 if() _ else if() _ else
注意:1、if是一个关键字,if后面有(),if()后面是没有分号
2、()里写得是条件,条件为真,执行if语句,为假不执行
3、if(1)//条件为真
if(-1)//条件为真
if(0)//条件为假
4、if()后面最好加{},{}代表if语句
5、如果不加只要第一个语句属于if
if(1)
printf("测试111\n");
printf("测试222\n");
if(1)
{
printf("测试111\n");
}
printf("测试222\n");
//优点:有利于代码编排,方便查看代码
6、if()后面是没有分号的,切记
if();
等价
if()
{
//空语句
}
7、if(a = 4) 这样的写法是不正确的,括号内不能赋值,只能判断
三目运算符
三目运算符就是简洁版的 if else
a = 10;
b = 20;
c = a>b ? a: b;
//1、?:(三目运算符)优先级比=高
//2、判断a>b条件,如果为真,执行? :之间的语句
// 如果为假,执行: ;之间的语句
switch语句
//1、switch是关键字,switch()后面没有分号
//2、switch()中()里只能放整形变量或者字符型变量
//3、switch用法类似于电梯模型
switch(num)
{
case 1:
printf("1楼");
break;//必须,跳出switch语句
case 2:
printf("2楼");
break;
case 3:
printf("3楼");
break;
default:
printf("其他");
break;
}
循环结构
while
//1、判断num>0的条件,如果为真,执行{}语句
// 如果为假,跳出while()循环
//2、执行完{}语句,重复1步骤
while(num > 0)//这里没有分号
{
}//这里也没有分号
do while
//1、do while第一次无条件执行
//2、第二次开始,和while一样
do
{
}while();//注意,这里有分号,这是语法
for
//1、for()内部有2个分号,这是语法
for(1;2;4)
{
3;
}
/*执行流程
1、i = 1
2、判断i<=100条件,如果条件为真,执行{}语句,如果为假,跳出for()
3、执行完{}语句,sum += i
4、执行完{}语句后,执行++i
5、重复2、3、4步骤
*/
for(i = 1; i<=100; ++i)
{
sum += i;
}
循环的应用
1、死循环
//{}可以不写,不写只有第一个语句属于循环,建议写
while(1)
{
}
//必须
do
{
}while(1);
//{}可以不写,不写只有第一个语句属于循环,建议写
for(;;)
{
}
2、循环的嵌套
//循环的嵌套
while()
{
for(;;)
{
do
{
}while();
}
}
/********************************************************/
int i = 0;
int j = 0;
int num = 0;
/*
1、i = 0;
2、判断i<10的条件,条件为真,执行for(i = 0; i<10; i++),条件为假,跳出循环
3、执行{}内部
*/
for(i=0;i<10;i++)
{
for(j=0;j<10;j++)
{
num++;
}
}
跳转语句(break、continue、goto)
break
//break 属于循环
for(i=0; i<10; i++)
{
for(j=0; j<10; j++)
{
if(0 == j)
{
break;//跳出最近的内循环for(j=0;j<10;j++)
}
printf("j = %d\n",j);
}
if(5 == i)
{
break;//跳出的是 for(i=0; i<10; i++)循环
}
printf("i = %d\n",i);
}
/*
break的作用:
1、跳出switch语句
2、跳出循环
3、如果有多个循环,跳出最近的内循环
*/
continue
//break和continue 的区别
//continue 属于循环
int i = 0;
for(i=0; i<10; i++)
{
if(5 == i)
{
//break;//跳出循环,不再执行
continue;//跳出本次循环,下次继续
}
printf("i = %d\n",i);
}
goto语句
//goto 任何地方都能使用,无条件跳转,不要滥用
//注意:只能跳转到同一个作用域
#include <stdio.h>
int main()
{
goto Mike;//跳转到Mike那里
printf("111111\n");
printf("222222\n");
Mike:
printf("33333\n");//直接打印33333
return 0;
}