黑马程序员 - C语言 -分支、循环

本文详细介绍了C语言中的三种控制结构:顺序结构、选择结构(包括if语句和switch语句)和循环结构(while, do...while, for)。通过实例应用解释了各种结构的使用和注意事项,强调了条件判断时的编程规范以及break和continue在循环中的作用。" 132384599,9354391,matlab最小二乘法拟合空间直线,"['matlab', '算法', '线性代数', '计算机视觉', '数据拟合']

——Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ——-

一.结构类型

(1)顺序结构:程序按书写顺序进行读取编译。

(2)选择结构:程序根据所给条件,判断真假,从而在真假两种情况下选择执行对应的代码段。

(3)循环结构:在满足所给条件时,循环执行给定的代码段。

如图所示:

这里写图片描述

二.选择结构

  1. if 语句的4种结构和使用

第一种:if (条件)

        { 语句1}         //  如果满足条件,就执行语句1

第二种:if (条件)

        { 语句1};       //如果满足条件就执行语句1
    else
        {语句2};       //  如果不满足条件,就执行语句2

第三种: 哪一段成立就执行哪一段

     if (条件1)
         {语句1}         //  如果满足条件1,就执行语句1
     else if (条件2)
              {语句2}    // 如果满足条件2,就执行语句2
     else if (条件3)
              {语句3}    //  如果满足条件3,就执行语句3
     else
              {语句4};  //  如果条件都不满足,就执行语句4

第四种: if (条件)
{语句1} // 如果满足条件,就执行语句1,不满足就不执行语句1
{语句2} // 语句2与条件无关,不管条件是否满足,都会执行

注意:

(1) 判断值是否相等的时候,最好把常量写在==左边,例如(0==a)

因为如果因为粗心将a==0写成了a=0,编译器是不会报错的,但如果把常量写在==左边,0=a,编译器会马上报错,所以把常量写==左边会及时纠正我们的错误
(2) if(条件)后面没有分号”;”

实例应用:求a,b中最大值

#include <stdio.h>  
int main()  
{  
    int a=10;  
    int b=8;  
    int max; //存放最大值  
    if(a>b)  //选择结构,判断a>b是否为真  
    {  
         max=a; //a>b真时,最大值等于a  
    }  
    else max=b; //a>b假时,最大值等于b  
    printf("max = %d\n");  
    return 0;  
}  

2.switch语句的使用
(1)switch的结构
switch(数值)
{
case 数值1: //如果数值==数值1,执行语句1,直到遇到break为止
语句1
break;
case 数值2: //如果数值==数值2,执行语句2,直到遇到break为止
语句2
break;

default: //如果数值!=数值1,而且数值!=数值2执行语句3,直到遇到break为止
语句3
break;
}
(2)break的作用:退出整个switch语句
(3)如果case后面没有break,就会执行后面所有的case语句,直到遇到break为止
注意:如果要在case后面定义一个新的变量,必须使用{}括住
3. if 和 switch的比较
(1)if 更加灵活,switch 能办到的,if都能办到,但if能完成的,switch 不一定能完成
(2)有些情况下,if 和switch 可以互用
(3)判断大小的时候一般选用if
实例应用:为输入的分数给出成绩等级

#include <stdio.h>  
int main  
{  
    int score;  
    printf("请输入您的成绩:\n");  
    scanf("%d",&score);  
    int temp = score / 10;  
    switch(temp)  
    {  
        case 10:  
        case 9:  
            printf("您的成绩等级为:A\n");  //成绩在90~100之间为A等级  
            break;  
        case 8:  
            printf("您的成绩等级为:B\n");  //成绩在80~89之间为B等级  
            break;  
        case 7:  
            printf("您的成绩等级为:C\n");  //成绩在70~79之间为C等级  
            break;  
        case 6:  
            printf("您的成绩等级为:D\n");  //成绩在60~69之间为D等级  
            break;  
         default:  
            printf("您的成绩等级为:E\n");  //成绩在0~59之间为E等级  
            break;  
    }  
    return 0;  
}  

三,循环结构 (while,do while,for)
1. while循环的结构和使用
while(条件)

(1) 先确定需要重复执行的操作放到循环体{}中,然后再确定约束条件
(2) 若条件成立,执行一次循环体{},然后再判断条件,若成立继续执行循环体{},直到条件不成立,退出整个循环

(3)若一开始,条件就不成立,则永远不会执行循环体{}

(4)若while后面没有{},意味着while后面的那一句代码就是循环体
(5) while 循环中用到的变量必须在循环外面定义

应用实例:求1+2+3……+100

 #include <stdio.h>  
int main()  
{  
    int i=1;  
    int sum=0;  
    while(i<=100)  
    {  
        sum += i;  
        i++;  
    }  
 printf("sum = %d\n");
    return 0;  
}  
  1. do while循环的结构和使用
    do {
    }while(条件)
    不管条件是否成立,先执行一次循环环体{},再判断条件是否成立,若条件成立,继续执行,不成立,则退出循环
    应用实例:求1+2+3……+100
 #include <stdio.h>  
int main()  
{  
    int i=1;  
    int sum=0;  
    do{  
        sum += i;  
        i++;  
    }while(i<=100);  
    printf("sum = %d\n");
    return 0;  
}  
  1. for循环的结构和使用
    for(语句1;条件;语句2)
    {
    }

(1)语句1:初始化语句;语句2:增量语句(执行完循环体再执行的语句)

(2)for循环一开始,先执行一次语句1,然后判断条件是否成立,若成立,执行一次循环体{},接着执行语句2,然后再次判断条件是否成立
(3)for循环中用到的变量可以在循环中定义
注意:
(1)for()后面没有分号”;”
(2)要注意for循环内部变量的作用域
(3)循环体执行完,循环体内部的变量就意味着被回收
(4)for循环可以嵌套使用

应用实例:输出乘法表

#include <stdio.h>  
int main()  
{  
    for(int i=1; i<=9; i++)  
    {  
        for(int j=1; j<=i; j++)  
        {  
        printf("%d*%d=%d\t",i,j,j*i);  
        }  
        printf("\n");  
    }  
    return 0;  
}  
  1. while,do while,和for循环的比较
    一般优先考虑使用for循环(for循环比较灵活,变量可以及时回收),再考虑while循环,最后考虑do while循环
  2. break 和continue的比较
    (1)break使用场合
    1> switch 语句中:退出整个switch语句
    2>循环结构中(while,do while,for):退出整个循环语句(注意:只对最近的循环体有效)
    (2)continue使用场合

循环结构中(while,do while,for):结束当前的这次循环体,进入下一次循环体(注意:只对最近的循环体有效)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值