Vyper

【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文の基本的な使い方と応用について学びました。条件分岐を活用し、より高度なスマートコントラクトを設計できるようにしましょう。