• C++ Primer 4 CPP Note 1.4 控制结构


    1.4.1  while 语句

               
         C++中的while语句的结构依然是 :while(condition){ while_body_statement }  .
       和 C#,Java相比.C++中的while语句中的条件(condition) 值非0则为真。意思是 -1 负值同样为真 ,只要 不是0都为真.
    而C#和Java中的条件只能是boolean值.

    所以以下为死循环
               while(-1 || 1){
    std::cout << "printf" << std::endl;
    }
              PS : 突然想到如果条件不是不是表达式 而是一个对象,我在思考当对象为null等于false,不为空就等于true(类似javascript).这个等以后论证,学习就是这样不停的填补漏洞..因为我学习的角度不同与正规学生。可能在学习模式上有点不一样... 条条道路通罗马.但是Groovy中的while满足以上所有条件.(在1.4.3有部分论证)
    所以可以将上一段代码改成.
              int sum = 0,value; //注意这里的sum要初始化,不然要报错.
    while(std::cin >> value){
    sum += value;
    }
    std::cout << "sum is : " << sum <<std::endl;
        PS:因为是死循环.所以要退出循环后才能看见结果,在windows下面是通过ctrl+z来退出,unix中是ctrl+d
    1.4.2 for 语句
     
      for语句的结构和C#,Java的一样:
           一个初始化语句,一个条件,一个表达式. 初始化一次,然后判断条件,然后执行循环体代码,然后执行表达式,然后再判断条件...直到条件为假退出循环.
    至于在循环体中显示的使用break ,return 来退出循环. C++也是一样的.
     
    C++ 、C# 、Java中for语句大体如下:
                  for(int i = 0 ;i<100 ;i++){
    //.....
    if(i==10) break;
    }
    Groovy的很有意思:
    for(i in 0..10)
    println "this is ${i} "
    说到for语句顺便说说foreach语句 :
           C++中有没有,我目前学到这里还不知道.但是C#和JAVA的要说下
    在java中结构是这样的 :
    for( iterable_type iterable_element : iterable ) {

    }
    而在C#中:
    foreach( iterable_type iterable_element in iterable ) {

    }
    Groovy依然那样简洁:
    def list = ['a','b','c','d','f']
    list << 'e'<< 'f'<< 'g'
    //
    def say = {val->
    println "word : ${val}"
    }
    //
    for(i in list)
    say(i)
    其结果:
    word : a
    word : b
    .
    .
    word : g


     
    1.4.3 if语句
     同while一样,if(0) == false , if(-1||1) == true       
         另外就想我在1.4.1while中的那个推断一样(类似javascript)
                    int sum = 0,value;
    while(std::cin >> value){
    if(!""){
    sum += value;
    }
    }//此段代码结果永远为0
    于是推导出:
    while(!""){
    std::cout << "printf"<<std::endl;
    }//永远不会打印出 'printf'
    所以可能我刚才的猜测是正确的.(如果""字符串在C++中和在JAVA中一样也属于对象的话.)
     
     
  • 相关阅读:
    桂林印象
    快变
    近期的事
    *C#中使用ref和out一点认识!*
    *在框架集页面放置TreeView控件时页面跳转的问题解决*
    *无法找到脚本库的问题*
    *Ajax.Net快速入门*
    *网页过期*
    *Prototype开发笔记*
    *正则表达式*
  • 原文地址:https://www.cnblogs.com/coveted/p/2207382.html
Copyright © 2020-2023  润新知