电商专业学习嵌入式软件开发第十九天

2017-02-10  本文已影响0人  雨打梨花闭门寒

今天老师将循环讲完了,条件流程switch-case补充到了昨天的笔记中,已经更新.老师顺便将数组开了个头,讲了一点基础。循环这一节单个循环逻辑拿出来可以理解,但是让自己写就写不出来。

③for循环
for(表达式1;表达式2;表达式3)
{}

规则:先计算表达式1,表达式1有且只执行一次,再去判断条件(表达式2)是否成立,如果成立就去运行{}里面的代码;
当{}里面的所有代码都执行完成之后再去执行表达式3,执行完表达式3之后再去判断条件,直到不成立,就执行{}下面的代码。

#incude<stdio.h>
int main()
{
  //计算1~100的和
    int i=1,sum=0;
    for (;i<=100;)
    {
        sum=sum+i;
        i++;
    }
    printf("i=%d\nsum=%d\n",i,sum);
  return 0;
}

for循环注意点:
1)表达式1和表达式3可以省略,如果说表达式2也省略,就相当于一个死循环
2)2个分号不可以省略

死循环有哪些写法?
1)for(;;)
{}
2)while(1)
{}

  1. do
    {
    }while(1);
#include<stdio.h>
int main()
{
/*
     break
     从键盘输入一串字符,计算有效字符的个数;
     有效字符指的是空格前面的字符
     zhang san\n  5
     hello\n   5
     */
    /*
     输入缓存流:zhang san\n
     用while(判断字符是'\n'),
     如果拿出来的字符是空格,就跳出去,不进行计数
     不是空格,就计数
     */
    char ch;
    int count=0;
    while((ch=getchar())!='\n')//判断字符是否输入结束的标志
    {
        if(ch==' ')
        {
            break;
        }
        count++;
    }
    printf("count=%d\n",count);
  return 0;
}

break注意点:
1)break是跳出switch语句和循环语句的,当执行break语句的时候,break下面的代码将不会被执行,继而执行循环或switch下面的语句
2)break是跳出最近的循环或者switch

#include<stdio.h>
int main()
{
     //1~100打印所有的数据,跳过个位为3的数
    int i=0;
    while (i<=99)
    {
        i++;
        if(i%10==3)
        {
            continue;
        }
        printf("%d  ",i);
    }
  return 0;
}

continue的注意点:
1)continue是跳出循环当中的一次循环,不会跳出整个循环,
当执行continue语句时,continue下面的代码不会被执行,继而再去判断下一次条件是否成立
2)continue是跳出最近的循环当中的一次循环

注意在与for连用的时候:碰到continue语句,continue下面的语句不会被执行,但是表达式3还是会被执行

for(表达式1;表达式2;表达式3)
{
    if()
    {
        continue;
    }
    printf("======\n");
}

printf不一定每次都能正确运行成功,解决方法:
在printf后加\n,\n的作用是强制刷新输出缓存流

在编程当中实在发现不了解决题目的答案,往往标志位flag能解决一切小问题,切记标志位不要太多

数组就是存储多个同种类型的变量集合
数组的定义
int array[7];
数组的初始化,数组是从0位置开始
1.int array1[4]={1,2,3,4};
2.如果后面的值个数不足,用0补全
int array2[4]={1,2};//{1,2,0,0}
3.int array3['a']={0};
4.int array4[4]={[3]=3,[2]=2};
5.如果数组大小没有指定,那么个数根据后面的数据决定
int array5[]={1,2,3,4};

上一篇 下一篇

猜你喜欢

热点阅读