zoukankan      html  css  js  c++  java
  • D语言-循环

    Part 1:while循环

    所谓循环,就是不断的做一个事情。
    while循环的结构是这样子的:

    while (<一个表达式>){
        //如果表达式为真,执行这里
    }
    //否则,直接跳出到这里
    

    举个例子:

    int a = 10;
    while (a > 0){
        writeln(a);
        a--;//这一句很重要,不然的话a一直都大于0,就一直不能跳出循环
        //我们把这种永远不能跳出的循环叫死循环
    }
    writeln("End While");
    

    你会看到输出:

    10
    9
    8
    7
    6
    5
    4
    3
    2
    1
    End While
    
    

    Part 2:用的更多的for循环

    for循环的语法格式是这样子的:

    for(<定义控制循环次数的变量>;<循环条件>;<对于循环变量的操作>){
        //和While一样
    }
    

    你会发现:for循环只是把whle循环的所有条件放在了一堆
    我们用for循环来改写上面的那个例子:

    for(int a = 10;a > 0;a --){
        writeln(a);
    }
    writeln("End While");
    

    你会看到输出:

    10
    9
    8
    7
    6
    5
    4
    3
    2
    1
    End While
    
    

    当然,for循环也会有死循环,双分号是个基本的for死循环:

    for(;;){
        //do
    }
    

    for循环的任意一个条件都是可以省略的,前提是你知道你在干什么。


    Part 3:do-while循环

    do-while看起来是这样子的:

    do{
        //不管是否为真,先把这里做一遍再说
    }while(<循环控制表达式>);//循环一次过后再来看是否符合循环条件  
    

    这个时候,编者想让你自己试试用do-while循环改写上面的程序。你发现了他的输出和while/for的输出有什么区别?怎么改进?


    Part 4:循环的嵌套

    当然,循环也可以放在循环当中。下面的例子是经典的用两个循环输出乘法口诀表:

    import std.stdio;
    int main (string[] args){
        for(int i=1; i<=9; i++){
            for(int j=1; j <= i; j++)
                write(i,"*",j,"=",i*j,"	");
            writeln();
        }  
        return 0;
    }
    

    Oh糟糕,你看见了:当需要用大括号括起来的一组语句中,如果只有一条语句,可以省略大括号
    程序输出:


    Part 5:break和continue

    break用于直接跳出当前循环,continue表示忽视continue下边的内容,直接开始第二次循环。
    用法:

    for(.....){
        if(....)
            break;//此时,直接跳出for循环
        else if(....)//我希望你还记得上次我们谈到的else-if
            continue;//此时,直接忽视下边的语句,开始下一次循环
    }
    

    课后作业:

    1.写出一个程序,输出[2,n]的素数。
    2.简述while、for和dowhile的区别。
    3.尝试输出在三个不同的循环结束之后,他们控制循环的变量(假定为i)有什么区别?
    4.在第三题的基础上尝试一下:i++换为++i,输出又会发生什么变化?

  • 相关阅读:
    转 -- Linux系列:Ubuntu虚拟机设置固定IP上网(配置IP、网关、DNS、防止resolv.conf被重写)
    转 -- 求一个二进制数值中的1的个数
    ubuntu 搭建 samba 服务器
    64bit ubuntu 安装32bit的软件
    ubuntu 添加管理员账户
    #ifdef 和 #if defined 的区别 -- 转
    xming + putty 搭建远程图形化ssh访问ubuntu 14.04
    ubuntu 安装bochs
    强制类型转换中的精度丢失
    转载 -- 如何判断Javascript对象是否存在
  • 原文地址:https://www.cnblogs.com/sdltf/p/12509808.html
Copyright © 2011-2022 走看看