黑马程序员 -- IOS C语言 流程控制1

时间:2023-02-19 19:30:29

-------------------------------------- android培训java培训ios培训期待与您交流! --------------------------------


if 的三种种结构:

顺序结构:默认的流程结构,按照书写顺序执行每一条语句。

选择结构:对给定的条件进行判断,在根据判断结果来决定执行那一段代码。

循环结构:在给定条件成立的情况下,反复执行某一段代码。


黑马程序员 -- IOS C语言 流程控制1


1.if的第一种结构:

if(条件)

{

语句1;

语句2;

}


例子


#include <stdio.h>

int main()

{

int count = 50;

if(count>=60)

{如果人数大于等于50那么在执行if大括号里面的语句。

printf("开班!!\n");

}

return 0;

}



2.if的第二中语句

if(条件1)

{

语句1;

语句2;

语句3;如果if条件成立那么就执行大括号里面的代码

语句4;

·······;

}

else

{

如果不成立就执行else大括号里面的代码

}


例子:


#include <stdio.h>

int main()

{

int count = 40;

if(count>=50)

{

printf("开班!!\n");    如果人数成立,就执行if代码

 }

else

{

printf("不开班!!\n");        如果人数不成立,就执行else里面的代码

}

return 0;

}



3.if的低三种结构

if(条件1)

{

语句1;

语句2;

·······;

}

else if(条件2)

{如果条件1成立,那么条件2,3,4大括号里的代码都不运行,但是else if (条件1/2/3/4)这个里面如果有什么数是要计算的

就是说,只要有一个条件成立,其他的条件都不运行

如果4个条件都不运行,才执行else代码。

}

else if(条件3)

{

}

else if(条件4)

{

}

else 

{

}



例子:

#include <stdio.h>

int main()

{

int a = 2;

if(a++>10)先用a得值与10做比较,在做加法运算a++ = 2+1 =3; 

{3>10 不成立,所以不运行if A,但此时a的值=3

printf("A\n");

}

if(a++>5)先用a的值和5做比较3>5,在做加法运算,a++ = 3+ 1 = 4

{4>5不成立,所以不运行if B但此时a的值 =4

printf("B\n");

}

if(a++>3)先用a得值和3做比较 4>3 ,在做加法运算,a++ = 4 + 1 = 5

{4>3成立,所以运行,if  c   

printf("C\n");

}

else

{

printf("D\n");

}

printf("a的值是%d\n",a)

return 0;

}

结果为c   a = 5



4.if的第四种结构(不建议使用

if(条件)

语句1;



注: it a = 10

if(a>1)

printf("A\n");

printf("B\n");  这个是int main()里面的函数肯定会有,但是和if的printf没有关系

结果为  A B 。



练习:

1/*提示用户输入一个整数score代表分数,根据分数输出等级,(A-E)用两种方式

 A:90-100

 B:80-89

 C:70-79

 D:60-69

 E: 0-59




#include <stdio.h>


int main()

{

    //1.提示用户输出一个分数。

    printf("请输出一个分数:\n");

    

    //2.接收用户输出的分数。

    int score;

    scanf("%d",&score);

    

    /*3.划分等级。

    //性能最好,score 80判断完以后肯定如果成立就肯定是b

    其他的不用再运行,而判断也就需要一下就行,如果大出80得结果会往上一层if去寻找答案

    */

    if(score>=90 && score<=100){

        printf("A\n");

    }

    elseif(score>=80){

        printf("B\n");

    }

    elseif(score>=70){

        printf("C\n");

    }

    elseif(score>=60){

        printf("D\n");

    }

    else {

        printf("E\n");

    }


    

    /* 性能中等    score 80判断完以后还要再判断一下

     score = 90  所以内存会再运行一下。

    if(score>=90 && score<=100){

        printf("A\n");

    }

    else if(score>=80 && score<=89){

        printf("B\n");

    }

    else if(score>=70 && score<=79){

        printf("C\n");

    }

    else if(score>=60 && score<=69){

        printf("D\n");

    }

    else {

        printf("E\n");

    }

     */

    

    /*   性能最差,内存分析的太多,每一步都要进行。

     if(score>=90 && score<=100){

        printf("A\n");

     }

    if(score>=80 && score<=89){

        printf("B\n");

     }

    if(score>=70 && score<=79){

        printf("C\n");

     }

    if(score>=60 && score<=69){

        printf("D\n");

     }

    if(score>=0 && score<=59){

        printf("E\n");

     }

    */

     

    return0;

}




2.输入一个整数mouth代表月份,根据月份输出对应的季节

春季:3. 4. 5

夏季:6. 7. 8

秋季:9.10.11

冬季:12.1. 2



#include <stdio.h>

int main()

{

    //1.提示用户输入月份

    printf("请输出月份:");

    

    //2.接收用户输入的月份

    int mouth;

    scanf("%d",&mouth);

    

    //3.输出对应的季节

    //每一个if里面都要进行两次的运算,性能中等

    if(mouth>=3 && mouth<=5){

        printf("春季\n");

    }

    elseif(mouth>=6 && mouth<=8){

        printf("夏季\n");

    }

    elseif(mouth>=9 && mouth<=11){

        printf("秋季\n");

    }

    else {

        printf("冬季\n");

    }

    

    

    

     /*这种方式,每一个if都要进行运算,所以性能最差

    if(mouth>=3 && mouth<=5){

        printf("春季\n");

    }

    if(mouth>=6 && mouth<=8){

        printf("夏季\n");

    }

    if(mouth>=9 && mouth<=11){

        printf("秋季\n");

    }

    if(mouth>=12 || mouth<=2){

        printf("冬季\n");

    }

     */

    return0;

}


3.输入一个整数day代表星期几,根据day的值输出对应的星期几,比如day==1,就输出星期一



#include <stdio.h>


int main()

{


    //1.提示用户输入一个星期数字

    printf("请输入一个数字:");

    

    //2.接收用户输入的数字

    int day;

    scanf("%d",&day);


    //3.分类

    

    if(day ==1){

    printf("星期一\n");

    }

    elseif(day ==2){

        printf("星期二\n");

    }

    elseif(day ==3){

        printf("星期三\n");

    }

    elseif(day ==4){

        printf("星期四\n");

    }

    elseif(day ==5){

        printf("星期五\n");

    }

    elseif(day ==6){

        printf("星期六\n");

    }

    else {

        printf("星期日\n");

    }

    

    

    return0;

}








switch语句

格式:

switch(数值):

{

case 数值1:

语句1;

break;

}

{

case 数值2:

语句1;

break;

}

{

case 数值3:

语句1;

break;

}

default:

语句1;

break;

例子:

#include <stdio.h>

int main()

{

int a = 10;

switch(a)

{

case 10:

printf("A\n");

break;


case 5:

printf("B\n");

break;


case 0:

printf("C\n");

break;


default;

printf("D\n");

}


return 0;

}

解释: a的值为10,对应case10 所以输出的结果为A

break一定要带上,如果不带的话,会把之后的case5也一起运行,输出结果会变为A,B

到B得break才会结束,所以break必须要带上。

default可以省略。不写。

如果想在case后定义一个新的变量,如果做加法

int sum = a + b

那么这句要展现作用域,加在大括号里面1


习题:

输入一个整数,score代表分数,根据分数输出等级(A-E)

A:90-100

B:80-89

C:70-79

D:  60-69

E: 0-59


#include <stdio.h>


int main()

{

    

    printf("请输入一个分数(0~100):");

   int score;

    scanf("%d",&score);

   switch (score / 10) {

       case 10:

       case 9

            printf("A\n");

           break;

       case 8:

            printf("B\n");

           break;

       case 7:

            printf("C\n");

           break;

       case 6:

            printf("D\n");

           break;

       default:

            printf("E\n");

           break;

    }

   return 0;

}



if和switch的区别

1> if语句能完成的语句,switch不能完成

int a = 10;

      if (a>5)

{

}

这句值能用if语句,switch是无法使用的


2>有写情况下,if和switch语句是可以互换的

比如


if语句: if(a == 10 || a == 9)

switch语句:     case10:

case9:


3>switch能完成的功能,if都可以完成