【Vyper】第2章第1回:条件分岐:if文の使い方と注意点
本記事では、Vyperにおける条件分岐(if文)の使い方について詳しく解説します。条件分岐を理解することで、スマートコントラクトの処理をより柔軟に制御できるようになります。
0. 記事の概要
この記事を読むメリット
- Vyperのif文の基本構文を理解できる
- 条件分岐を活用したスマートコントラクトの設計ができる
- エラーを防ぐための注意点を学べる
1. if文の基本

1.1 if文の基本構文
@public
def check_value(x: int128) -> string[100]:
if x > 10:
return "値は10より大きいです"
return "値は10以下です"
動作解説
- if x > 10: xが10より大きい場合に条件が成立し、特定の処理を実行する
- return “値は10より大きいです” 条件を満たした場合の戻り値
- return “値は10以下です” 条件を満たさない場合のデフォルトの処理
1.2 else文の活用
@public
def check_even_or_odd(n: int128) -> string[100]:
if n % 2 == 0:
return "偶数です"
else:
return "奇数です"
動作解説
- if n % 2 == 0: nが2で割り切れる場合(偶数)
- else: それ以外(奇数)の場合に実行される処理
2. if文の応用

2.1 複数条件のif文
@public
def check_range(y: int128) -> string[100]:
if y > 100:
return "100より大きい"
elif y > 50:
return "50より大きく100以下"
else:
return "50以下"
動作解説
- if y > 100: yが100より大きい場合の処理
- elif y > 50: yが50より大きく100以下の場合の処理
- else: それ以外の処理(50以下)
2.2 ネストしたif文

@public
def nested_check(z: int128) -> string[100]:
if z > 0:
if z % 2 == 0:
return "正の偶数"
else:
return "正の奇数"
return "負の数"
動作解説
- if z > 0: zが正の数かを判定
- if z % 2 == 0: zが偶数かどうかを判定
- else: 奇数である場合の処理
- return “負の数” zが0以下の場合のデフォルト処理
3. 練習問題

3.1 練習問題
以下の課題に挑戦してください。
- 年齢を入力し、18歳以上かどうかを判定する関数を作成する
- 三つの数値を比較し、最大値を判定する関数を作成する
4. まとめ
本記事では、Vyperにおけるif文の基本的な使い方と応用について学びました。条件分岐を活用し、より高度なスマートコントラクトを設計できるようにしましょう。