PythonistaのためのC++記法入門: それC++ではどう書くの4の続き。今回は短め。
if文
Pythonではこう書いた
if a == 10:
# 処理A
elif a == 100:
# 処理B
else:
# 処理C
bool値に関しては以下のように書ける
Pythonでは0
や空文字列""
、空のlist
などもFalse
として扱われる。
flag = True
if flag:
# 処理
flag = False
if not flag:
# 処理
C++ではこう書く
int a;
if (a == 10) {
// 処理A
}
else if (a == 100) {
// 処理B
}
else {
// 処理C
}
bool値に関しては以下のように書ける。
bool flag = true;
if (flag) {
# 処理
}
flag = false;
if (!flag) {
# 処理
}
if文の書き換え
Pythonではこう書いた
a, b = 10, 20
if a < b:
answer = a
else:
answer = b
# 以下のように1行で書ける
answer = a if a < b else b
C++ではこう書く
int a(10), b(20);
int answer;
if (a < b) {
answer = a;
}
else {
answer = b;
}
// 以下のように1行で書ける
int answer = a < b ? a : b;
まとめ
C++ | Python | |
---|---|---|
if文 | if (条件1) { 処理1; } else if (条件2) { 処理2; } else { 処理3; } |
if 条件1: 処理1 elif 条件2: 処理2 else: 処理3 |
boolean判定(1) | if (boolean){ 処理 } |
if boolean: 処理 |
boolean判定(2) | if (!boolean){ 処理 } |
if not boolean: 処理 |
三項演算子 | 型 変数 = 条件式? true時の値 : false時の値 |
変数 = True時の値 if 条件式 else False時の値 |
and / or
Pythonではこう書いた
if a > 0 and b > 100:
# 処理
if a > 0 or b > 100:
# 処理
C++ではこう書く
if (a > 0 && b > 100) {
# 処理
}
if (a > 0 || b > 100) {
# 処理
}
コメントをいただきました。C++でもand
/ or
が使えるとのことです。
for文
Pythonではこう書いた
for a in range(0, N, 1):
# 処理
# 一般的にはこう書くことのほうが多い
for a in range(N):
# 処理
C++ではこう書く
for (int i = 0; i < N; i++) {
// 処理
}
コンテナ型に関しては以下のようにも書ける。
条件式の配列の要素の型 変数名 : 配列変数
に注意。
配列の要素の型を常に考えないといけない。
vector<int> a = {1, 3, 2, 5};
for (int x : a) {
// 処理
}
auto
を使うと簡単に書ける。
コメントをいただきました。auto&&
のほうが好ましいとのことです。
vector<int> a = {1, 3, 2, 5};
for (auto x : a) {
// 処理
}
イテレータを用いた書き方は別記事にて説明する。
while文
Pythonではこう書いた
while i < 10:
# 処理
i += 1
C++ではこう書く
int i = 0;
int N = 10;
while (i < N) {
// 処理
i++;
}