zoukankan      html  css  js  c++  java
  • C语言细节——献给初学者(二)

    C语言细节——献给初学者(二)

    主题  循环运用+选择判断

    C语言循环有for和while/do...while;

    选择判断有:if...else和switch...case

     

    在循环中需要注意搭配break和continue的运用,在多层循环中,当前层的break和continue只对当前层有效,比如: 

    此处定义了一个num二维数组,想要打印出这个数组,continue这句作用于第一层循环,控制行,所以数组的num[3][]这行的数据不会输出;

    而break这里作用于第二层循环,控制列,所以其实每行只有num[][0]和num[][1]输出了,其余都不输出。

     

    有人会问,做acm经常会要求每行输出一组数据,每两个数据之间有空格,但是以上代码最后一个数据后面也会带个空格,这个时候可以配合if语句,如下: 

     

    if(j)相当于if(j!=0)在c/c++中可以这么用,java中不行。

     

    while和do...while的区别在于,while循环次数0~n次,而另一个是1~n次;

    也就是do...while不论条件是不是符合,先执行一次循环体再判断;

    在做一些题目如果需要进行t次循环而不需要用到t的当前数值的时候,用到while是比for更加方便且显而易见的:

    while(t - -)

    {…}

    最后说说switch...case:

    switch…case的适用数值范围是:int,long,short,enum,char等,不适用的有字符串,浮点数等;这仅仅是在c语言中如此;在java等其他语言中不一定,如java的string就可以使用。

    以下给一个enum的代码: 

     

     switch…case还需要注意的是,除了最后一个case(基本上时default),都需要用到break;除非你多个case输出的一样,如case1,2,3输出yes( )look,

    在这里我们注意到两个printf不需要大括号,这也和必须用break的意义相同。

    此外需要注意的 一点是,default不是只在最后可以用,写在其他case前面也可以,编译器允许,并且不会影响结果。

    最后总结下switch...case的几点:

    1.其可使用的数值类型范围;

    2.时刻注意不要遗漏break;

    3.记得用default来处理异常数据;

    4.case可多个连用;

    5.在case后面的常量不能相同,否则会报错;

    6.在case后允许有多个语句,可以不用{}括起来;

    7.各case和default先后顺序可以互换(default在前面注意加break)

    8.case后面必须为常量,const修饰的变量也不行,但是用#define宏定义的可以

  • 相关阅读:
    SICP 习题1.16-1.19体会
    设计模式C++实现——组合模式
    QT官方下载地址
    浅析三角形測试程序
    操作系统开发之——进入保护模式
    PowerDesigner 打印错误
    @RequestParam注解一般用法
    Eclipse配置Maven的一些问题
    在windows上部署使用redis出现的问题及解决方法
    Eclipse导入模板格式Xml配置文件
  • 原文地址:https://www.cnblogs.com/sylvialucy/p/4854017.html
Copyright © 2011-2022 走看看