C++学习小记

 

      之前“看”过C++,但是纯粹只是为了应付考试。现在想重新学习,久仰《C++ primer》大名,书之厚令我生畏,好记性不如烂笔头,遂以博客形式笔记之。

      本人编程菜鸟一枚,当中如有任何错误,欢迎指正!谢谢!   

      声明:本文属原创,转载请留言我,谢谢!

 

一 "<<"与">>"

      如果输入输出语句较长,那么可以直接分行,该语句直到 “;” 结束

放书中例子:

std::cout << "the sum of " << v1 << "and" << v2
               << "is" << v1+v2 <<std::endl;

 

   但是,被拆分的每一行语句后不能加“;”,因为这样一句话变成了几句独立的话。

 

二  两个注释符号 “//”,“/*...*/”

     “//” :单行注释符,以换行符结束。

      “/*...*/” : 以“/*”开始,”*/“结束,中间可以换行。但注意防止嵌套,否则很容易造成语句错误(遇到前面一个”*/“,注释提前终止)

 

三  练习while语句时自己犯的一个错误

     题目:编写程序,提示用户输入两个整数,打印出这两个整数所指定的范围内的所有整数

     直接上错误代码:

#include<iostream>
using namespace std;
int main()
{
  int c1,c2,val;
  cout << "please input two numbers" << endl;
  cin >> c1 >> c2;
  while((val <= c1 && val >=c2) || (val <= c2 && val >=c1))
          {
           cout << val << " ";
           }
  return 0;
}

 

    自我分析:

      错误原因之一 :显然对while()语句没有理解。当判断条件为真是,执行循环体,否则跳出循环。初始化中系统自给 "val" 赋初值为零。所以程序可能一直跳不出循环。比如 "c1  = 1,c2 = 3"   

      错误原因之二 :“val” 的值在循环过程中并没有改变。程序不会自动地遍历“c1”和“c2”之间的值。

 

      经过分析,附上可执行的正确代码:

#include<iostream>
using namespace std;
int main()
{
    int c1,c2,val;
    cout << "Please enter input two numbers" << endl;
    cin >> c1 >> c2;
    if (c1 <= c2){
        val = c1;
        while(val <= c2){
            cout << val << " ";//添加空格以区分数字
            ++val;
        }
    }
    else{
        val = c2;
        while(val <= c1){
            cout << val << " ";
            ++val;
        }
    }
    return 0;
}

 

 

posted on 2016-04-09 19:26  REAUTOPIA  阅读(156)  评论(0)    收藏  举报