技术原理

【从零开始的c世界生活】(2) 基础变数宣告、添加注解的方式

嗨,大家好,这次小马要挑战的系列文是【从零开始的c世界生活】,
挑战从零开始,手把手教大家学习c++语言,
今天要再次教基础变数的宣告

补充: c语言和c++语言是不同的东西,
标题叫【从零开始的c世界生活】而非【从零开始的c++世界生活】是为了唸起来顺口,
系列文是教c++不是教c,请留意

(建议可以直接使用线上写程式工具repl.it,省去初学安装的麻烦)

快速複习一下

上一篇我们教到了在c++中让萤幕印出文字的工具std::cout

#include <iostream>

int main() {
    std::cout << "Hello, World!"<< std::endl;
    std::cout << "Hello, 小马!"<< std::endl;
    return 0;
}

#include在c++中是引入函式库的意思,
相当于告诉程式说所使用的函式来自哪里,
cout是函式库<iostream>里面的指令,
所以需要写#include <iostream>
cout是输出的意思,std::表示cout这个函数来自std这个命名空间

另外有个重点,c++每个语句的结束必须写一个「分号」表示结束
类似写作文一个句字结束要写「句点」一样,
如果忘记写「分号」程式是会报错的,需留意

变数宣告

今天要讲的是变数的宣告,
基础的语法为变数型态 名称 = 值
例如说我们今天想要宣告一个变数名字叫作number,它的值是5
就可以这样写

#include <iostream>

int main() {
    int number = 5;
    return 0;
}

int是integer(整数)的意思,
告诉程式说number这个变数的型态是一个整数
注意,c++是一个严谨的语言,
初次使用是一定要告诉程式那个变数是哪一种「型态」

你可能想说啊这程式怎幺这幺笨,
直接写number = 5;不行吗?

这边小马用一个日常生活中的比喻,
就好像你今天去早餐店,
说「老闆我要一份火腿蛋…」
那请问是「火腿蛋」什幺呢?
原来早餐店的菜单上面有「火腿蛋汉堡」和「火腿蛋三明治」,
必须告诉老闆你要的是哪一种

程式里也有许多种变数型态,
有「int」(integer, 整数)、「float」(浮点数)、「char」(字元)、…
必须需要告诉程式你要使用的是哪一种型态。

一旦宣告过一个变数之后,
日后便可以在程式中修改值了,
比方说:

#include <iostream>

int main() {
    int number = 5;
    number = 3;
    return 0;
}

搭配我们学过的cout
我们可以把变数内容印出来到萤幕上:

#include <iostream>

int main() {
    int number = 5;
    std::cout << number << std::endl;
    number = 3;
    std::cout << number << std::endl;
    return 0;
}

结果会在萤幕上印出
5
3

由于这边是新手教学,附上程式在repl.it执行的图片:
https://ithelp.ithome.com.tw/upload/images/20200521/20117114QSVZ1krG0Z.png
(结果会印在右边的黑色视窗中)

建议: 在宣告变数的同时就初始化

这边提一下,在c++语言中,是可以先宣告变数,
等到使用到变数的时候再赋值的,
比如说:

#include <iostream>

int main() {
    int number;
    std::cout << number << std::endl;
    number = 3;
    std::cout << number << std::endl;
    return 0;
}

单纯写int number;宣告一个变数名字叫number
事后才赋值,
但没有给初始值就使用变数的话,
number的值是未定义的,
建议是宣告变数的同时就初始化,
程式比较不容易出错

基础四则运算

有了变数之后,
我们可以帮程式取有意义的变数,
并进行四则运算,
在程式中,加、减、乘、除的符号分别是「+, -, *, /」

範例: 用功的小明

小明是一名用功学英文的学生,假设小明每天背不同的13个英文单字,
持之以恆连续背56天之后,
那幺总共可以背多少个英文单字呢?

啊你可能想说这幺简单的问题,按计算机就好了,
但如果一旦你想叫电脑做的计算很複杂,
每次情境变了,我们计算就要全部重头来过,
写程式的好处是「一劳永逸

怎幺说呢?只要是相同类型的问题,
都可以套用同一支程式来解,
不必每次都重按计算机
(当解决的问题很複杂时,也不是按计算机能解决的)

#include <iostream>

int main() {
    int word = 13;
    int day = 56;
    std::cout << "小明每天背" << word << "个单字,"
              << "持之以恆背" << day << "天,"
              << "总共可以背" <<  word * day << "个单字。" <<std::endl;
    return 0;
}

结果:
https://ithelp.ithome.com.tw/upload/images/20200521/20117114vdZ6AyIKbK.png

这样便可以做四则运算了,
下次如果小明更加用功,
改成每天背20个单字,
只要改成int word = 20;就可以计算了

注解- 让你的程式更好读

最后教如何在你的程式内添加注解
在开发大型程式时,常常会碰到这样的问题,
就是看不懂自己以前的程式码在写什幺

注解可以为你的程式添加文字说明,
而不影响程式的结果,
在c++中,
有两种方式添加注解,
/* */是多行注解,可以把注解的内容以/* */包起来
// 是一行注解,把注解的内容写在//后面

範例:

#include <iostream>

/*
程式作者: 心原一马
撰写日期: 2020-5-21
程式功能: 小明每天背固定数量的单字,计算n天后背了多少单字
*/

int main() {
    int word = 13; //每天背的单字量
    int day = 56; //持续背单字的天数
    std::cout << "小明每天背" << word << "个单字,"
              << "持之以恆背" << day << "天,"
              << "总共可以背" <<  word * day << "个单字。" <<std::endl;
    return 0;
}

这样程式是不是很好读呢?

附录: 合法的变数名称

这边做个小提醒,变数命名有一定规则,否则程式可能会无法执行,
列举几个重点:

  • 变数名称只能用英文字母、数字、_(底线)或中文字组成 (但建议不要用中文字帮变数取名)
  • 英文字大小写不一样,例如: Name 和 name 是不同的变数名称
  • c++内建关键字不可以当作变数名称 (例如: int, for)
  • 变数不可以用阿拉伯数字当开头,如 3a 是不合法的名字

课后理解小测试

这边提一个简单的小问题,
测试读者是否理解了,
请问: 在上述程式中,
为什幺不是每换一行就加一个分号呢?

比如说这样写有什幺问题吗?

#include <iostream>

int main() {
    int word = 13; //每天背的单字量
    int day = 56; //持续背单字的天数
    std::cout << "小明每天背" << word << "个单字,"; //如果这行跟下一行加分号可以吗?
              << "持之以恆背" << day << "天,";
              << "总共可以背" <<  word * day << "个单字。" <<std::endl;
    return 0;
}

你也可能喜欢

发表评论

您的电子邮件地址不会被公开。 必填项已用 * 标注

提示:点击验证后方可评论!

插入图片
人工智能医疗应用 投稿者
我还没有学会写个人说明!
最近文章
  • * 没有更多文章了
  • 热门搜索

    分类目录