iT邦幫忙

1

【從零開始的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;
}

1 則留言

0
一級屠豬士
iT邦大師 1 級 ‧ 2020-05-21 15:23:56

C++ 跟 C 兩回事.

看更多先前的回應...收起先前的回應...

我知道。

通靈亡 iT邦新手 2 級 ‧ 2020-05-21 15:50:07 檢舉

屠豬大大會不會是指你的標題:「從零開始的c世界生活」
會讓人混淆C和C++是相同的東西。

應該是這樣,只是我想標題「從零開始的c世界生活」會比「從零開始的c++世界生活」來的更順口,覺得應該在文章內註明中本系列文在教c++就好~

這就小馬一貫的風格囉.正常能量釋放.

我要留言

立即登入留言