iT邦幫忙

2021 iThome 鐵人賽

DAY 5
0
Software Development

三十天內用C++寫出一個小遊戲系列 第 5

Day 5 - 如果有如果

前言

上次介紹了變數是甚麼?這次就來說明程式的一些功能吧!所以為什麼我們需要使用程式語言,為甚麼不直接使用計算機就好了?今天就跟各位來簡介一下。


為什麼不用計算機就好

其實這個問題的答案,顯而易見。當你今天要處理一個比較複雜的問題,例如連續加法與乘法時,你在用計算機的時候效率就會降低許多。

instance1:今天要你計算多個區間的乘積1 x 9 + 8 x 15 + 6 x 80 + 4 x 9 當你今天只有計算機的時候,你可能只能將每一個乘積記在紙上面,最後再加起來。但若今天有一台可以使用C++的電腦時,你可以這樣寫:cout << (1 * 9 + 8 * 15 + 6 * 80 + 4 * 9);就可以印出答案了。好,是不是有些人覺得這樣還是很麻煩,那我再用一個例子來說明。

instance2:如果今天你想要知道一個數字9487乘於100120會是多少,在只有計算機的情形,你只能一個一個計算然後記起來。但是在C++中,可以這樣用:

//instance_2
#include<iostream>
using namespace std;

int main(){
	int number = 9487;
	
	for (int i = 100; i <= 120; i++){
		cout << number * i << " ";
	}
}

這段程式就會跑出這樣個結果:

事實上會比手動計算機計算還要來的快。所以,當你需要重複做一件事情的時候,可以拋棄基本的計算機,使用電腦中的程式會快許多。


運算子(operator)

接下來介紹一下甚麼是運算子,顧名思義就是在運算一些數學的工具。

例如在 1 + 1 這個式子中 ,其中兩個1被稱作運算元,而加號就被稱作運算子

下列是常用的運算子:

【運算子】

運算子 名稱 用法+例子 例子會得到 注意事項
加法 cout << 5 + 6; 11
減法 cout << 7 + 9; 16
乘於 cout << 5 6; 30
除於 cout << 20 / 10; 2 須注意變數的型態
除於 n 之後的餘數 cout << 15 % 6; 3

if / else / else if

接下來要介紹的是if / else / else if 這幾個東西的語法。首先,if 可以把它直接翻成中文,就是如果,如果這件事情發生了,就做下面的事情吧,而 else 則是與上述的 if 的狀況相反的集合(言下之意,就是 else 的前面必定要有一個 if) 。可以把 if 跟 else 的概念想成下面這張圖一樣。

而 else if 的概念,是與 if 的範圍中沒有相干(或可能有交集)的一個集合,他的概念可以想成下圖。

if 的文法:

if (condition){
	statement 1;
	statement 2;
}
else{
	statement 1;
	statement 2;
}
else if (condition){
	statement 1;
	statement 2;
}

或是如果只有一個statement (就是你想要做甚麼事情)
可以不用大括號

if(condition)
	statement;
else
	statement;
else if (condition)
	statement;

那我們直接來個例子

#include<iostream>
using namespace std;

int main(){
	int inputNumber = 0;
	cin >> inputNumber;
	if (inputNumber == 0){
		inputNumber = inputNumber + 9;
		cout << inputNumber;
	}
	else{
		inputNumber = inputNumber * 10;
		cout <<  inputNumber;
	}
}

在這個例子中,使用者先輸入一個數字,再判斷這個數是不是 0 ,如果是 0 則將這個數字加 9 ;如果不是 0 就把這個數字乘於 10 再把他顯示在螢幕上面。


判斷用的運算子

【判斷用的運算子】

運算子 名稱
小於
大於
<= 小於等於
>= 大於等於
== 等於
&&
||

以上提到的這些判斷用的運算子,常會在if else裡面用到,就以下列為舉例:

我們讓使用者可輸入一個整數,然後用 if else else if來判斷並做出反應

#include<iostream>
using namespace std;

int main(){
	int inputNumber = 0;
	cin >> inputNumber;
	
	if (inputNumber == 0)
		cout << "The input number is " << 0 << "."; 
	else if ((inputNumber <= 10) && (inputNumber > 0))
    cout << "The input number is between 1 and 10."
	else
		cout << "The input number is out of " << "0 - 10" << ".";

	return 0;
}

在這段程式中,判斷使用者輸入的整數,等於 0 時,會顯示"The input number is 0";如果這個數在1 - 10中,會顯示 "The input number is between 1 and 10." ;最後如果都不在這段範圍中,則會顯示 "The input number is out of 0 - 10" 。


寫程式好習慣

關於變數的宣告習慣。在程式中通常不喜歡把變數隨便命名,這是因為這段程式很有可能在未來被其他人所看到或是可能要修改,若用了看不懂的命名,會讓人搞不懂整段程式在寫甚麼。所以在命名的時候要取有意義的名稱,例如我上述的 inputNumber 會讓人知道這個就是使用者輸入的數字!


小結

這篇講的一些運算上的原則還有 if/ else/ else if 的用法,實在是非常的實用,幾乎每次寫程式都用得上。


參考資源:

  1. https://zh.wikipedia.org/wiki/C和C%2B%2B運算子

上一篇
Day 4 - 穩若磐石
下一篇
Day 6 - 二進位會不會被禁位?
系列文
三十天內用C++寫出一個小遊戲30

尚未有邦友留言

立即登入留言