PowerShellでToDoリストを作る – Part 3: タスクの表示機能とメニュー表示機能の実装

※本サイトはプロモーションが含まれています。

今回の記事では、ToDoリストのタスク表示機能の実装と、その際に活用する配列の基本について学びます。

これまでの学びを振り返ると、Part 1ではPowerShellの起動方法や最初のスクリプトの実行方法を学びました。続くPart 2では、タスクの追加機能を実装し、変数の使用方法を理解しました。これらの基本的な操作をマスターすることで、今回の内容に取り組む準備が整いました。

今回の記事を通じて、さらにPowerShellの魅力を深く理解し、プログラミングの楽しさを感じていただければ幸いです。

猫道
猫道

同じファイルを何度も更新するので、別のファイルとして保管しながら進めてね。

タスクの表示機能の実装

タスクの表示機能

ToDoリストにタスクを追加することができるようになったので、次にそのタスクを表示する機能を実装します。この機能を実装することで、現在のタスクの一覧を確認することができるようになります。

コード例:

# タスクの配列を宣言
$tasks = @("PowerShellの学習", "ブログ記事の執筆", "メールのチェック")

# タスクの表示機能
function ShowTasks {
    Write-Host "現在のタスク一覧:"
    foreach ($task in $tasks) {
        Write-Host ($task)
    }
}

# タスクの表示
ShowTasks

コードの説明:

  1. 最初に、サンプルとして3つのタスクを持った配列$tasksを宣言しています。
  2. ShowTasksという関数を定義しています。この関数は、配列$tasksの中身を順番に表示する役割を持っています。
  3. forループを使用して、配列の各要素を順番に取り出し、Write-Hostコマンドを使用してコンソールに表示しています。この際、タスクのインデックスも一緒に表示して、どのタスクがどのインデックスに対応しているかをわかりやすくしています。
  4. 最後に、ShowTasks関数を呼び出して、タスクの一覧を表示しています。

このコードを実行すると、現在のタスク一覧がコンソールに表示されます。新たにタスクを追加したり、削除したりする機能を組み合わせることで、より実用的なToDoリストを作成することができます。

関数について

PowerShellでは、特定の処理をまとめて再利用可能な形にするために「関数」を使用します。関数は、一連のコマンドをグループ化して名前を付け、その名前を使って何度でもそのコマンド群を実行することができます。

関数の基本的な定義方法:

function 関数名 {
    # 処理内容
}

例:

function Greet {
    Write-Host "Hello, PowerShell!"
}

# 関数の呼び出し
Greet

上記の例では、Greetという名前の関数を定義しています。この関数は、”Hello, PowerShell!”というメッセージをコンソールに表示する役割を持っています。関数を定義した後、関数名を使ってその関数を呼び出すことができます。

関数は、コードの再利用性を高めるだけでなく、コードの構造を整理し、読みやすくするための重要なツールとなります。特に、同じ処理を複数の場所で使用する場合や、複雑な処理を分割して管理する場合には、関数の利用が非常に有効です。

Q.PowerShellでの関数の使用は、コードの再利用性をどのように向上させるのでしょうか?

A.関数は、特定の処理を一つの「箱」にまとめることができます。この「箱」を使うことで、同じ処理を何度も簡単に呼び出すことができます。これにより、コードの重複を避けることができ、プログラムがスッキリとします。

メニュー表示機能の実装

メニュー表示機能

PowerShellを使用して、ユーザーに操作を選択させるメニューを表示する方法を紹介します。このメニュー表示機能は、ユーザーが複数の操作の中から選択を行い、その選択に応じて異なる処理を実行する際に非常に役立ちます。

以下のソースコード部分が、メニュー表示機能の実装部分です。

# メニュー表示
do {
    $choice = Read-Host "操作を選択してください (1: タスク追加, 2: タスク表示, 3: 終了)"
    switch ($choice) {
        '1' { Write-Host "タスクを追加します。" }
        '2' { Write-Host "タスクを表示します。" }
        '3' { Write-Host "プログラムを終了します。"; break }
        default { Write-Host "無効な選択です。再度選択してください。" }
    }
#3以外の場合
} while ($choice -ne '3')

メニュー表示機能の詳細:

  1. 操作の選択: Read-Hostを使用して、ユーザーに操作を選択させます。選択された操作の番号が$choice変数に格納されます。
  2. 選択に応じた処理の実行: switch文を使用して、$choice変数の値に応じて異なる処理を実行します。例えば、1が選択された場合はAddTask関数が呼び出され、タスクの追加処理が実行されます。
  3. 繰り返し表示: do-whileループを使用して、ユーザーが「終了」を選択するまでメニューを繰り返し表示します。

このメニュー表示機能を使用することで、ユーザーに直感的な操作を提供し、複数の機能を持つアプリケーションの操作を簡単にすることができます。

do-whileループについて

foreachループは、配列やコレクションの各要素を順番に取り出して処理するための繰り返し構文であるのに対して、do-whileループは、特定の条件が満たされている間、繰り返し処理を行うための構文です。

基本的な構文:

do {
    # 繰り返し実行する処理
} while (条件)

このループは、まずdoブロック内の処理を実行し、その後whileの後に指定された条件を評価します。条件が$trueであれば、再びdoブロックの処理を実行します。この繰り返しは、条件が$falseになるまで続きます。

特徴:

  • do-whileループは、条件が最初から$falseであっても、doブロックの処理は必ず1回は実行されます。
  • 条件の評価は、doブロックの処理が完了した後に行われるため、ループの中で条件を変更することができます。

例:

$count = 0

do {
    Write-Host "繰り返し処理を実行中: $count 回目"
    $count++
} while ($count -lt 5)

このコードは、”繰り返し処理を実行中”というメッセージを5回表示します。$count変数の値が5未満である間、do-whileループは繰り返し実行されます。

switch文について

PowerShellにおけるswitch文は、一つの変数の値に応じて複数の処理を分岐させるための構文です。条件分岐の構文は他にif文を用いることが出来ますが、switch文は特に多くの条件を持つ場合に読みやすく、効率的にコードを書くことができます。

以下のソースコード部分が、switch文の使用例です。

switch ($choice) {
    '1' { AddTask }
    '2' { ShowTasks }
    '3' { Write-Host "プログラムを終了します。"; break }
    default { Write-Host "無効な選択です。再度選択してください。" }
}

switch文の詳細:

  1. 条件の指定: switch文の後に括弧()内に条件となる変数や値を指定します。この例では$choice変数の値を条件としています。
  2. 各ケースの処理: 波括弧{}内に、それぞれのケースに対応する処理を記述します。この例では、$choiceの値が1の場合、AddTask関数が呼び出されます。
  3. デフォルトの処理: defaultキーワードを使用して、上記のケースに該当しない場合の処理を記述します。この例では、無効な選択がされた場合にメッセージを表示しています。

switch文を使用することで、複数の条件分岐を明確に、そして簡潔に記述することができます。特に、多くの条件を持つ場合や、特定の値に応じて異なる処理を行いたい場合に非常に役立ちます。

追加機能、表示機能、メニュー表示機能の統合

ここまで学んできた内容を元に、追加と表示機能を持つToDoリストを作成してみましょう。
以下のソースコードを参考に、各機能の詳細について説明します。

# タスクの配列を宣言
$tasks = @()

# タスクの追加機能
function AddTask {
    $task = Read-Host "追加したいタスクを入力してください"
    $script:tasks += $task
    Write-Host "$task がToDoリストに追加されました。"
}

# タスクの表示機能
function ShowTasks {
    Write-Host "現在のタスク一覧:"
    foreach ($task in $script:tasks) {
        Write-Host ($task)
    }
}

# メニュー表示
do {
    $choice = Read-Host "操作を選択してください (1: タスク追加, 2: タスク表示, 3: 終了)"
    switch ($choice) {
        '1' { AddTask }
        '2' { ShowTasks }
        '3' { Write-Host "プログラムを終了します。"; break }
        default { Write-Host "無効な選択です。再度選択してください。" }
    }
} while ($choice -ne '3')

ソースコードの説明:

  1. タスクの配列の宣言: $tasksという変数に初期タスクの配列を代入しています。
    ※2.と3.では、この配列に対してデータを追加したり表示したりしています。
    関数内で$tasksとしても、関数の外側に変数がありせっかく宣言した配列を参照することができません。$script:tasksとし参照範囲を変えています。
  2. タスクの追加機能: AddTask関数を定義しており、この関数を呼び出すとユーザーに新しいタスクの入力を求め、入力されたタスクを$tasks配列に追加します。
  3. タスクの表示機能: ShowTasks関数を定義しており、この関数を呼び出すと$tasks配列の中身を一覧表示します。
  4. メニュー表示: do-whileループを使用して、ユーザーに操作を選択させるメニューを表示しています。ユーザーが「終了」を選択するまで、このメニューは繰り返し表示されます。

このソースコードを使用することで、簡単にタスクの追加や表示ができるToDoリストをPowerShellで実装することができます。

猫道
猫道

このソースコードを次回以降も使っていくよ。

まとめ

今回は、ToDoリストのタスク表示機能、メニュー表示機能の実装と、その際に活用する配列の基本について学びました。これまでのPart 1とPart 2の内容を踏まえ、さらに実践的なスキルを身につけることができました。

次回の記事では、ToDoリストのさらなる機能拡張に挑戦します。タスクの削除機能について詳しく解説します。

🔍 探求を続ける

🔹 次のステップへ進む
🔗 「PowerShellでToDoリストを作る – Part 4: タスクの削除機能の追加」を読む

🔹 全体像の確認(ToDoリスト作成)
🔗 「PowerShellを活用したToDoリスト作成の全手順」を見る

ToDoリスト作成
シェアする
猫道をフォローする
この記事を書いた人
猫道

異業種からの転職を経て、システムエンジニアとして7年以上働いてきました。PowerShellを使いながら、プログラミングの魅力を共有したいと思っています。

猫道をフォローする

コメント

タイトルとURLをコピーしました