C语言循环结构和分支-创新互联

  1. c语言是结构化的程序设计语言,其形式主要有三种——(1)顺序结构(2)选择结构(3)循环结构

    创新互联主要从事成都网站设计、做网站、成都外贸网站建设公司、网页设计、企业做网站、公司建网站等业务。立足成都服务浑南,10年网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:18982081108

1)

  1. 顺序结构是按照代码的顺序,从上往下从前往后依次进行执行的

  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分支的规则

  1. .else优先与近的if结合

  1. if后的语句只执行一条,如果要执行多条语句,需要花括号{}

  1. 当一个程序有多个if语句时,执行完一个if后不干涉程序进入下一个if,只要满足条件判断就可以执行语句

  1. 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