从C出发 04 --- 基本语句

本文介绍了C语言中基本的流程控制结构,包括选择语句(if-else,switch),循环语句(while,for,do-while)以及break和continue在循环中的用法。通过示例展示了如何构建状态机、处理多分支选择和循环控制,强调了这些结构在程序设计中的重要性。
摘要由CSDN通过智能技术生成

一、基本语句


二、选择语句

 


三、开关语句 

#define  STA1   0
#define  STA2   1
#define  STA3   2
#define  STA4   3
#define  STA5   4

unsigned char uSTA_Status = STA1;


//开关语句 - 状态机
switch(uSTA_Status)
{
	case STA1: printf("The STA machine in STA1\r\n");uSTA_Status = STA3;break;
	case STA2: printf("The STA machine in STA2\r\n");uSTA_Status = STA4;break;
	case STA3: printf("The STA machine in STA3\r\n");uSTA_Status = STA2;break;
	case STA4: printf("The STA machine in STA4\r\n");uSTA_Status = STA5;break;
	case STA5: printf("The STA machine in STA5\r\n");uSTA_Status = STA1;break;
	default:uSTA_Status = STA1;
}

四、while循环语句

 

 

 


五、for循环语句

 

死循环 


六、程序中的选择语句

程序只有自上而下的顺序执行方式

是否足够?

 

 

short a =1;
short b =2;
int c = a -b;

if(c > 0)
{
    printf("a>b\n");
}
else
{
        if(c == 0)
        {
            printf("a == b\n");
        }
        else
        {
            printf("a < b\n");
        }
}

/*********************************上面的太难看**对比下面**********************************/

if(c > 0)
    printf("a>b\n");
else if(c == 0)
    printf("a == b\n");
else
    printf("a < b\n");


 七、switch 多分支选择语句

 这样写很费劲

        有没有更加简洁的多分支选择结构的写法??

int a = 1;
int b = 2;
char sign = 0;

switch(sign)
{
     case '+'
        printf("%d + %d = %d\n",a,b, a + b);
        break;
     case '-'
        printf("%d - %d = %d\n",a,b, a - b);
        break;
     default:
        printf("Unsupport Sign: %c\n", sign);
      

}

 


switch 语句的分支合并技巧

 

字符 'A' 对应一个整数 (在C语言里面是使用整数来表示字符的)

switch (num)
{
    case 1;
    case 2;
    case 3;
    case 4;
    case 5;
        printf("%c\n", 'A' + (num - 1));
        break;
    default:
        printf("Invalid Input\n");
    
}

 


八、程序中的循环结构

 

 伪代码一般用于表达思想,不能被执行

 

 

int sum = 0;
int i = 0;

while(i <= 100 )
{
    sum = sum + i;
    i = i + 1;

}

printf("sum = %d\n", sum);
printf("i = %d",i);

 

if( 1 )    //只执行一次的循环体
{
    printf("hello world");
}

 

 

 

 

 

do while需要以分号来结束. 因为do while这个整体被看作了c语言当中的一条语句了。

 while 和do while 的剪裁

 


九、循环结构的套路

 for 循环是一种更加简洁的循环结构,本质上和while 一样

 

 

 

 


10、break与continue

  

 

 

 

 

 

 

int k = 0;
int input =0;

printf("Input: ");
scanf("%d", &input);

switch(input  % 2 )
{
    case 0 ;
        printf("case 0\n");
        for(k=0; k <= 2; k=k+1)
                if( k )
                    break;
    break;
    case 1;
        printf("case 1\n");
    break;
}

11、continue -- 循环体终结者

int k = 1;

for(k=1; k<=10; k=k+1)
{
    printf("Begin: %d\n", k);    
    continue;
    printf("End!\n");
}
/*************以上打印10个Begin而忽略End********************/
while( k<=10 )
{
    printf("Begin: %d\n", k); 
    continue;     //  将一直打印Begin,因为continue 结束当前循环,所以跳过了下面的语句
    printf("End!\n");
    k = k + 1;
}

 打印1000以内能被7 整除的整数,并统计数量

int i =0;
int n =0;

for(i=1; i<1000; i=i+1)
{
    if(i % 7)
        continue;
    
    printf("%d", i);
    
    n = n + 1;
  
}
printf("\n");
printf("Count: %d\n", n);

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

长生君

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值