一、基本语句
二、选择语句
三、开关语句
#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);