0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

PythonistaのためのC++記法入門: それC++ではどう書くの5 ~条件処理~

Last updated at Posted at 2021-09-16

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++;
}
0
1
3

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?