C语言循环结构和分支-创新互联
c语言是结构化的程序设计语言,其形式主要有三种——(1)顺序结构(2)选择结构(3)循环结构
创新互联主要从事成都网站设计、做网站、成都外贸网站建设公司、网页设计、企业做网站、公司建网站等业务。立足成都服务浑南,10年网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:18982081108
1)
顺序结构是按照代码的顺序,从上往下从前往后依次进行执行的
顺序结构的特点——1.自上而下 2. 依次执行 3. 没有分支
int main()
{
printf("1\n"); //1
printf("2\n"); //2
printf("3\n"); //3
printf("4\n"); //4
printf("5\n"); //5
return 0;
}
一段简单的printf代码,其程序运行结果如下
程序按顺序1、2、3、4、5依次执行,依次分别打印出的“ ”里的语句。
2)选择结构
选择结构两大类——1*、if else语句
—— 2*、switch -case 语句
a.if else语句
函数使用--
if(函数表达式)
{
执行语句;
}
else if(函数表达式)
{
执行语句;
}
else
{
执行语句;
}
int main()
{
int i = 10;
if( i >= 10 )
printf("666\n"); //(1)
else if( i<= 0)
{ //(2)
i++;
printf("%d\n",i);
}
else
printf("7777\n"); //(3)
if( i >= 0)
printf("我爱c语言\n"); //(4)
printf("hahahaha\n"); //(5)
return 0;
}
注意:这一段代码里一共有五个printf函数,而且{}的布置也有不同
程序执行结果如上,最后只打印了执行了3条printf函数,现在来简单讲解一下该段代码实际上在编译器中是如何运行的
当程序执行时,函数从主函数进入,为常量i分配了一个int类型的空间并赋值为10,下一步就是进入if语句分支,此时i = 10 满足(i >= 10)进入下方的执行语句,打印出“666”,下一步程序指向下一个if(不是else 后面的 if),即直接来到第四个printf的判断条件——(i >= 0),此时i = 10 >0 满足条件判断进入打印“我爱c语言”,由于最后一个printf函数执行没有条件判断,因此无论如何,只要程序不在前面的语句中断,程序都会打印出“hahahahaha\n”。
|在这里补充上if分支的规则
.else优先与近的if结合
if后的语句只执行一条,如果要执行多条语句,需要花括号{}
当一个程序有多个if语句时,执行完一个if后不干涉程序进入下一个if,只要满足条件判断就可以执行语句
if后的else if --当if中条件判断满足时,不进入与之关联的else if 和else 即使符合条件判断也不进入。
b.switch case语句
使用方法:
switch(条件参数)
{
case _:
case _:
执行语句;
break;
default:
执行语句;
break;
}
e.g
int day = 5;
scanf("%d",&day);
switch(day)
{
case 1:
case 2:
case 3:
case 4:
case 5:
printf("工作日\n");
break;
case 6:
case 7:
printf("周末\n");
break;
default:
printf("输入错误\n");
}
以上的代码用于在用户输入数字1234567对应的日期判断每个星期中的工作日或者周末
break的用法是在循环或者switch分支中直接结束当前结构语句(循环或者分支),上面的例题中如果没有break,那么在执行完”工作日“打印后程序不会结束,而是进入下一步执行语句。
3)循环结构
循环有三大类a.while 循环
b.do while 循环
c.for循环
a*) while 循环注意事项和使用
while (判断条件)
{
执行语句;
必须要有限制条件;
}
int i = 10;
while(i)
{
printf("%d",i);
i--;
}
最后程序执行如下
代码执行分析:
由main函数进入后为变量i分配一块空间并且赋值为10
while()内的循环判断条件规则是:0为假,非零为真,即结果不为0时符合条件判断就可进入执行语句
在执行的语句中遵循顺序结构,先printf后i自减,经过了十次循环后i=0作为判断条件,不进入之后的执行语句,因此执行过程在while循环中往往比判断少一轮。
b*) do while循环
使用:
do
{
循环体;
必须有限制条件;
}while(条件判断);
当程序进入do while循环后,先进入一次循环体,再进行条件判断,当判断结果为真时,进入下一次循环,当结果为假时,退出循环结构。
在循环体中,除了当前的执行语句之外,必须要有能限制while循环次数的语句来防止死循环,一个循环体中可以没有其它的执行条件,但是必须要有限制条件;
当循环体中程序进行到break,则程序会直接终止在循环结构的进程,从而进行下一语句,值得注意的是,break只能跳出一层循环/分支结构,在多组循环或者分支嵌套的情况下往往采用多个break来结束程序在循环中的进程。
当循环体中的程序进行到continue,程序会直接终止该次循环结构的进程,与break不同的是:continue执行后程序下一步执行的是下一次的循环体语句,而不是循环结构后的程序。
c*) for循环
使用:
for( 初始条件 ;限制条件 ;控制循环变量 )
{
循环体;
}
e.g打印出0 - 9的十个数字
for(i = 0 ; i< 10 ; i++ )
{
printf("%d ",i);
}
实际上如果底层逻辑没有太大区别的时候,for循环和while循环可以相互转换上面的for循环还可以这样写
i = 0;
while(i< 10)
{
printf("%d ",i);
i++;
}
两者执行的效果是完全相同的,只是在一些特定的场合,人们更倾向于特定的写法,像是while常被用于做未知循环次数的循环,for循环更多被应用于已知循环次数的循环。
值得注意的是,不管是那种循环,其限制循环次数的条件是一个合格的循环所必备的,而且循环限制条件可以不仅限于一条,在有需求的环境下,人们可以创建多个变量来控制循环次数。
int i = 0,j = 10;
for( ;i >3 && j % 2 != 0;i++,j++)
{
;
}
如上,i 和 j都是控制循环次数的变量;
在for循环的设计中,括号中的条件可以省略不写,但必要在循环体中体现,虽然这样的代码c语言支持读写,但为了避免程序出现错误和程序难以被看懂,应该尽量减少这样的写法。
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧
分享文章:C语言循环结构和分支-创新互联
文章网址:http://myzitong.com/article/pdesh.html