Swiftの「repeat-while」ループは、最低1回は処理を実行することが保証される繰り返し処理の一種です。この構文は、まず処理を実行し、その後に条件を評価します。そのため、たとえ条件が初回から成立しなくても、少なくとも1度は繰り返し処理が行われます。これは、他のループ構造と異なり、事前に条件が評価される必要がない点で特徴的です。本記事では、この「repeat-while」ループの使い方や利点について、実践的な例を交えながら詳しく解説していきます。
repeat-whileループとは
Swiftの「repeat-while」ループは、繰り返し処理を行う際に最低1回の実行を保証する制御構造です。通常のループ(whileループなど)は、まず条件を評価してから処理を実行しますが、「repeat-while」ループでは、処理が実行された後に条件が評価されるため、条件が最初に満たされていなくても必ず1回は処理が行われます。これにより、必ず実行したい処理がある場合や、最初の処理結果を条件として繰り返し処理をしたい場合に適しています。
whileループとの違い
「repeat-while」ループと「while」ループはどちらも繰り返し処理を行うために使用されますが、両者には明確な違いがあります。最大の違いは、条件が評価されるタイミングです。
whileループ
「while」ループは、まず条件が評価され、その条件が真(true)である間、ループ内の処理が実行されます。つまり、最初の条件評価が偽(false)の場合、ループは一度も実行されない可能性があります。
while 条件 {
// 条件が真の場合にのみ実行される処理
}
repeat-whileループ
一方、「repeat-while」ループでは、条件の評価はループの最後に行われます。これにより、条件が偽であっても、少なくとも一度はループ内の処理が実行されます。条件が真になる限り、ループが繰り返されます。
repeat {
// 必ず最初に実行される処理
} while 条件
違いの要点
- whileループ: 条件を先に評価し、条件が真の場合のみループを実行する。
- repeat-whileループ: 最初に処理を実行し、その後に条件を評価するため、最低1回は必ず処理が実行される。
この違いにより、初回実行が保証されているかどうかが繰り返し処理の選択に影響を与えることがあります。
基本的なrepeat-whileループの構文
「repeat-while」ループの基本的な構文は非常にシンプルです。処理ブロックが実行された後に、条件が評価されるため、処理が少なくとも1回実行されることが保証されます。以下に、基本的な構文を示します。
repeat {
// ここに繰り返したい処理を記述します
} while 条件
この構文では、次の手順で処理が行われます。
- まず、
repeat
ブロック内のコードが実行されます。 - 次に、
while
に続く条件式が評価されます。 - 条件式が
true
であれば、再度repeat
ブロック内の処理が実行されます。条件式がfalse
であれば、ループを終了します。
具体例
例えば、次のコードは1から5までの数字を出力する「repeat-while」ループの例です。
var count = 1
repeat {
print("カウント: \(count)")
count += 1
} while count <= 5
このコードでは、count
が5以下である限りループが続きます。結果として、1から5までの値が順に出力されます。このように、繰り返し処理を簡潔に記述できるのが「repeat-while」ループの特徴です。
実際の使用例
「repeat-while」ループは、初回の実行を保証したい場合や、条件に基づいた繰り返し処理を行いたい場合に有効です。ここでは、実際のプログラムでよく使われる例を見てみましょう。
ユーザー入力によるループ
次の例では、ユーザーが指定した値を繰り返し入力させ、正しい範囲内の数値が入力されるまでループを続けるプログラムです。
var input: Int
repeat {
print("1から10の間の数字を入力してください:")
if let userInput = Int(readLine() ?? "") {
input = userInput
} else {
input = 0 // 無効な入力があった場合
}
} while input < 1 || input > 10
print("正しい入力です: \(input)")
このプログラムでは、ユーザーが1から10の間の数字を入力するまでループが続きます。無効な入力があった場合でも、再度入力が求められるため、ユーザーが正しい範囲内の値を入力することが保証されます。
ゲームのメニュー選択
ゲームやアプリケーションのメニュー選択にも「repeat-while」ループが使われます。ユーザーが有効なメニューオプションを選択するまで、繰り返し入力を求める処理が行われます。
var choice: Int
repeat {
print("""
メニュー:
1. ゲームを開始
2. 設定
3. 終了
選択してください (1-3):
""")
if let userInput = Int(readLine() ?? "") {
choice = userInput
} else {
choice = 0 // 無効な入力
}
} while choice < 1 || choice > 3
switch choice {
case 1:
print("ゲームを開始します...")
case 2:
print("設定画面に移動します...")
case 3:
print("終了します...")
default:
break
}
この例では、ユーザーが1から3の範囲外の選択肢を選んだ場合でも、必ず再度選択を求められます。有効な選択肢が入力されるまでループは終了しません。
これらの例から分かるように、「repeat-while」ループは、最低1回の実行が必要なシナリオや、ユーザーの正しい入力を強制する状況で非常に役立ちます。
複雑な条件付き繰り返し処理の実装
「repeat-while」ループは、単純な条件だけでなく、複雑な条件を基に繰り返し処理を行うことも可能です。複数の変数や条件を組み合わせることで、柔軟な繰り返し処理を実現できます。ここでは、より複雑な条件を使用した例を見てみましょう。
複数条件によるループ制御
次の例では、ユーザーが正しいパスワードを入力するか、特定の試行回数に達するまでループを続けるプログラムです。このようなケースでは、複数の条件を組み合わせてループの終了条件を設定します。
let correctPassword = "password123"
var attempts = 0
let maxAttempts = 3
var userInput: String
repeat {
print("パスワードを入力してください:")
userInput = readLine() ?? ""
attempts += 1
if userInput == correctPassword {
print("ログイン成功!")
} else {
print("パスワードが間違っています。あと\(maxAttempts - attempts)回の試行が残っています。")
}
} while userInput != correctPassword && attempts < maxAttempts
if userInput != correctPassword {
print("試行回数が上限に達しました。ログインに失敗しました。")
}
このプログラムでは、ユーザーが正しいパスワードを入力するか、試行回数が上限の3回に達するまでループが続きます。ユーザーが正しいパスワードを入力するとループは終了しますが、入力が間違っている場合は、試行回数が増加し、指定回数を超えるとログイン失敗メッセージが表示されます。
条件によって動作を変えるループ
さらに複雑な条件を使用することで、条件に応じた異なる動作をループ内で行うことができます。以下の例では、異なる条件に基づいてループ内の処理を変更しています。
var points = 0
var level = 1
repeat {
print("現在のレベル: \(level), 現在のポイント: \(points)")
// ポイントを追加
points += Int.random(in: 1...10)
// レベルアップの条件
if points >= 30 {
level += 1
points = 0 // ポイントをリセット
print("レベルアップ!現在のレベルは \(level) です。")
}
// 特定レベルに達したら終了
} while level < 5
print("ゲームクリア!最終レベルに達しました。")
この例では、ポイントを加算していき、30ポイントに達するとレベルアップします。レベル5に到達するまでこの処理を繰り返し、最終的に「ゲームクリア」としてループが終了します。このように、動的に変化する条件を使って、より高度なロジックを「repeat-while」ループで実装できます。
まとめ
「repeat-while」ループを使えば、複雑な条件による繰り返し処理も柔軟に行えます。複数の条件を組み合わせたり、変数の値を動的に変化させることで、特定の状態に到達するまで処理を続けることができます。これにより、ユーザーの入力やプログラムの状態に応じてループを制御する高度なプログラムを作成できます。
パフォーマンスと効率性の比較
「repeat-while」ループは、最低1回の実行を保証する特性を持つため、他のループ構造(特に「while」ループ)と比較して使い所が異なりますが、処理のパフォーマンスや効率性においても違いがあります。この章では、「repeat-while」ループの効率性について、他のループと比較しながら考察していきます。
repeat-whileとwhileループのパフォーマンス
「repeat-while」ループと「while」ループは、基本的にはどちらも同じように繰り返し処理を行いますが、条件評価のタイミングに違いがあります。パフォーマンスに関しては、両者とも繰り返し回数や処理内容に大きく依存しますが、通常の条件付きループにおいては以下の点に注目する必要があります。
- 初回の実行回数:
「repeat-while」ループは、少なくとも1回は必ず処理が実行されます。これに対して、「while」ループでは初回の条件評価が偽(false)であれば、一度も処理が実行されないため、余計な処理を避ける点で効率的です。初回の実行が不要な場合、無駄な処理が増えることになるため、この場合「while」ループの方が効率的と言えるでしょう。 - 条件評価のコスト:
繰り返し処理の条件が複雑である場合、条件の評価コストがループ全体のパフォーマンスに影響を与えることがあります。「repeat-while」ループでは、条件がループ内の最後に評価されるため、初回の処理が無条件に実行され、その後の条件評価が行われます。したがって、条件が多重に設定されている場合や、処理の負荷が高い場合にはパフォーマンスに影響が出る可能性があります。
他のループ構造との比較
Swiftには他にもさまざまなループ構造がありますが、以下は「repeat-while」ループと一般的な「for」ループ、または「while」ループとの効率性の違いを比較したものです。
- forループ:
「for」ループは決まった範囲や回数を繰り返す際に有効です。例えば、1から10までの数値を繰り返し処理する場合は、事前に範囲が定義できるため、無駄な処理がなく効率的です。一方、「repeat-while」ループは条件に基づいて動的に繰り返し回数が決まるため、範囲が明確な場合は「for」ループの方が効率的と言えます。 - do-while構造との類似性:
Swiftには「do-while」ループという名称はありませんが、「repeat-while」ループは他のプログラミング言語における「do-while」ループと同じ役割を持ちます。このループも、最低1回は処理が実行される点で効率的ですが、特定の条件や状況によっては、複雑なロジックを追加するとパフォーマンスに影響を与える可能性があります。
パフォーマンス最適化のポイント
「repeat-while」ループを効率的に活用するためのポイントを以下に示します。
- 初回の実行が必要か判断する:
最初の処理が必須でない場合は、「while」や「for」ループの方が適している可能性があります。特に、初回の処理が無駄な負荷をかける可能性がある場合は注意が必要です。 - 条件の複雑さを最小化する:
ループの条件が複雑になるほど、評価コストが増します。できる限りシンプルな条件を設定することで、パフォーマンスを向上させることができます。 - 繰り返し回数を制御する:
無限ループや極端に多くの繰り返しを避けるため、適切な条件や制限を設けることが重要です。条件に基づいた終了条件を明確にすることで、不要なリソース消費を防ぐことができます。
まとめ
「repeat-while」ループのパフォーマンスや効率性は、使用する条件や処理の内容によって大きく異なります。初回の実行が必要な場合や、ユーザー入力などの動的な条件に基づく処理には非常に有効ですが、特定の場面では他のループ構造の方が適していることもあります。効率的な処理を実現するためには、ループの条件や繰り返し回数を最適化することが重要です。
トラブルシューティング
「repeat-while」ループを使用する際、特に初学者や開発の初期段階では、予期せぬエラーや問題に直面することがあります。ここでは、よくあるトラブルとその解決方法について解説します。
無限ループの発生
最も一般的な問題は、無限ループの発生です。これは、ループの終了条件が適切に設定されていなかったり、条件が常に真(true)になるケースで起こります。例えば、条件を満たす更新処理がループ内で行われていない場合、ループが永遠に繰り返されてしまいます。
var count = 0
repeat {
print("カウント: \(count)")
// count の値を更新しないため無限ループが発生
} while count < 5
この場合、count
が更新されていないため、count < 5
という条件が常に真となり、無限ループに陥ります。解決策は、ループ内で条件が変化するように、count
の値を適切に更新することです。
var count = 0
repeat {
print("カウント: \(count)")
count += 1 // count を適切に更新
} while count < 5
条件の誤解釈によるエラー
もう一つのよくある問題は、条件の設定ミスです。例えば、<=
や>=
などの比較演算子を誤って使用することで、期待しない動作が発生することがあります。
var number = 10
repeat {
print("number: \(number)")
number -= 1
} while number > 10 // ここでループが一度も実行されない
この例では、number > 10
という条件が最初から偽(false)のため、ループが実行されません。ループを正しく動作させるためには、条件式を見直す必要があります。
var number = 10
repeat {
print("number: \(number)")
number -= 1
} while number >= 0 // 正しい条件に変更
初回実行の意図しない動作
「repeat-while」ループは、初回の処理が必ず実行されるため、条件にかかわらず1回目の処理が実行されることを忘れてしまうと、意図しない動作が発生する場合があります。例えば、初回で無効なデータが処理される可能性がある場合、適切な初期値や条件設定を行う必要があります。
var input = -1
repeat {
print("0から10の間の数を入力してください: ")
input = Int(readLine() ?? "") ?? -1
} while input < 0 || input > 10
この例では、初回に負の値でinput
が初期化されているため、ループ内で初回の入力が必ず促されます。しかし、入力の初期化が適切でない場合、意図しない値が処理されてしまう可能性があります。初期値や初回処理に注意することで、このような問題を避けることができます。
値の範囲外エラー
「repeat-while」ループを使う際、変数が不正な値を取ったり、範囲外の値が処理されるケースもあります。これを防ぐためには、ループ内でのエラーチェックやバリデーションが重要です。
var input: Int
repeat {
print("年齢を入力してください: ")
if let userInput = Int(readLine() ?? "") {
input = userInput
} else {
print("無効な入力です。再度入力してください。")
input = -1
}
} while input < 0 || input > 120 // 年齢が範囲内に収まるようにチェック
この例では、ユーザーが不正な入力をした場合に再度入力を促し、範囲内の正しい値が得られるまでループを続けます。これにより、誤ったデータが処理されるのを防ぐことができます。
まとめ
「repeat-while」ループを使用する際には、無限ループや条件の設定ミス、初回実行の意図しない動作などに注意する必要があります。これらのトラブルは、ループ内の処理や条件式を適切に設定し、範囲チェックやバリデーションを行うことで防ぐことが可能です。常にループが正しく終了することを確認し、必要に応じてエラーチェックを追加することで、堅牢なコードを作成することができます。
テストとデバッグの方法
「repeat-while」ループを使ったプログラムのテストとデバッグは、他のループ構造と同様に重要です。特に、最低1回の実行が保証される特性を持つため、意図通りにループが動作するかを確認することが欠かせません。この章では、テスト手法とデバッグのポイントについて説明します。
テストケースの設計
「repeat-while」ループをテストする際は、通常以下の3つの主要なテストケースを設計する必要があります。
- 初回で条件が偽になるケース
初回実行が必ず行われるため、初回の実行が適切に動作するかどうかを確認します。例えば、ユーザー入力を使ったプログラムであれば、初回の入力が無効な場合でも必ず1回目の入力が促されるかをテストします。 - 条件が真のまま繰り返すケース
条件が繰り返し成立するケースでは、ループが正しく動作し、期待される回数や状況で処理が行われるかを確認します。このケースでは無限ループが発生しないかも重要なポイントです。 - 終了条件に達するケース
条件が偽になり、ループが終了するかを確認します。特に、複数の終了条件がある場合や、複雑な条件式が用いられている場合は、各条件でループが正しく終了するかを個別にテストします。
テスト例
次の例では、ユーザーが1から10の間の数字を入力するまでループが続くプログラムをテストします。
var input: Int
repeat {
print("1から10の数字を入力してください:")
input = Int(readLine() ?? "") ?? 0
} while input < 1 || input > 10
このプログラムでは、次のようなテストケースを設計します。
- 無効な入力を繰り返す: 0やマイナスの数字、または文字列を入力して、再度入力を促されるかを確認します。
- 有効な入力を行う: 1から10の範囲内の数字を入力し、ループが正しく終了するかをテストします。
デバッグのポイント
「repeat-while」ループのデバッグでは、特定の問題に対処するためにいくつかのポイントを押さえておくと効率的です。
ループ回数の確認
まず、ループが予期せぬ回数実行される場合は、ループの開始時点での変数の状態と、ループ内での変数の変更を確認します。特に、終了条件に関連する変数が正しく更新されているかをチェックすることが重要です。次のコードは、回数が予期通りかどうかを出力するデバッグの例です。
var count = 0
repeat {
print("カウント: \(count)")
count += 1
} while count < 5
上記のコードでは、print
を使用してループの各回数でcount
がどのように変化しているかを確認します。これにより、ループが期待した通りに実行されているかを確認できます。
無限ループの検出
無限ループは、特に初心者にとってトラブルシューティングが難しい問題です。無限ループが発生している場合は、ループ内で条件を更新する処理が適切に行われているかを確認します。ループの終了条件に関連する変数が常に同じ値を保持していると、条件が真であり続け、ループが終わらなくなる可能性があります。
デバッグ時には、条件式とその中で使用されている変数の値が正しく変化しているかを確認します。デバッガやログ出力を使って、ループ内の変数がどのように変化しているかを逐次チェックすることで、問題の原因を突き止めることができます。
変数の初期化チェック
「repeat-while」ループでは、初回の実行時に変数が初期化されていないと、予期せぬ動作が発生することがあります。特に、変数の初期値が重要な場合は、ループの外で初期化が正しく行われているかを確認します。
次の例では、初期化されていない変数が原因でエラーが発生する場合があります。
var total: Int
repeat {
print("値を入力してください:")
total += Int(readLine() ?? "0") ?? 0 // 初期化されていないtotalに対して加算
} while total < 100
このコードでは、total
が初期化されていないため、エラーが発生します。適切に初期化することで問題を解決できます。
var total = 0
repeat {
print("値を入力してください:")
total += Int(readLine() ?? "0") ?? 0
} while total < 100
まとめ
「repeat-while」ループのテストとデバッグでは、無限ループの発生や条件評価の正確さ、初回実行の挙動に注目することが重要です。テストケースを設計し、デバッガやログを使って変数の状態を確認しながら、問題点を見つけ出すことで、効率的にプログラムの動作を検証できます。
応用例: ユーザー入力によるループ処理
「repeat-while」ループは、ユーザー入力に基づいた繰り返し処理の場面で特に有効です。最低1回の実行が保証されているため、ユーザーの入力や選択肢に応じた処理を確実に実行でき、条件が満たされるまで入力を繰り返すシナリオに適しています。このセクションでは、ユーザー入力を使用した実践的な応用例を紹介します。
ユーザーによる継続確認付きのメニュー
例えば、次のプログラムは、ユーザーが選択肢を選ぶメニューを提供し、ユーザーが「終了」を選ぶまでループが続く処理を実装しています。このような構造は、ゲームのメニュー画面や設定画面など、さまざまなアプリケーションで使われるパターンです。
var choice: String
repeat {
print("""
メニュー:
1. ゲームを開始
2. 設定
3. 終了
選択してください (1, 2, 3):
""")
choice = readLine() ?? ""
switch choice {
case "1":
print("ゲームを開始します...")
case "2":
print("設定画面に移動します...")
case "3":
print("終了します。")
default:
print("無効な入力です。1, 2, 3のいずれかを選んでください。")
}
} while choice != "3"
実装のポイント
- ユーザー入力の確認: 「readLine()」を使ってユーザーからの入力を取得し、無効な入力があった場合は再入力を求める処理を行います。
- 選択肢の処理: 「switch」文を使って、ユーザーの選択に応じた処理を実行します。「1」が選ばれた場合はゲームを開始、「2」が選ばれた場合は設定画面に遷移するなど、実際のアプリケーションに応用しやすい構造です。
このコードは、ユーザーが「3」(終了)を選ぶまでループを繰り返します。無効な入力が行われた場合でも、適切にエラーメッセージを表示し、再度選択を促します。
数値入力による計算処理の繰り返し
次に、ユーザーが数値を入力し、それに基づいた計算を繰り返す例を紹介します。ユーザーが「終了」を選ぶまで、計算を繰り返すシンプルなプログラムです。
var continueCalculation: String
repeat {
print("最初の数字を入力してください: ")
let firstNumber = Int(readLine() ?? "") ?? 0
print("次の数字を入力してください: ")
let secondNumber = Int(readLine() ?? "") ?? 0
let sum = firstNumber + secondNumber
print("合計: \(sum)")
print("別の計算をしますか? (y/n): ")
continueCalculation = readLine() ?? ""
} while continueCalculation.lowercased() == "y"
実装のポイント
- 数値入力: ユーザーに2つの数値を入力させ、その合計を計算します。無効な入力があっても、
Int(readLine())
でデフォルト値を設定することでエラーを防ぎます。 - ループの継続判断: ユーザーに「y」または「n」で続行するかどうかを問うことで、繰り返しの可否を決定しています。
この例では、ユーザーが「y」を入力する限り計算を続けます。「n」を入力するとループが終了し、プログラムが停止します。
ユーザーの正しい入力を待つ例
次は、ユーザーが有効な入力を行うまで、ループを続ける例です。これにより、ユーザーが正しい入力をするまで何度でも再入力を求めることができます。
var age: Int
repeat {
print("年齢を入力してください (0から120まで): ")
age = Int(readLine() ?? "") ?? -1
if age < 0 || age > 120 {
print("無効な入力です。0から120の間で入力してください。")
}
} while age < 0 || age > 120
print("入力された年齢は \(age) 歳です。")
実装のポイント
- 入力の検証: ユーザーが入力した年齢が、指定された範囲内(0~120)の数値であるかを確認しています。範囲外の値が入力された場合は、再度入力を促します。
- 無限ループを防ぐ: ユーザーが有効な入力を行うまでループを続けることで、プログラムのエラーを防止しています。
このコードは、入力された年齢が有効な範囲に収まるまでユーザーに再入力を求め、正しい値が得られるまで繰り返し処理を実行します。
まとめ
「repeat-while」ループは、ユーザー入力を使ったアプリケーションで非常に強力なツールです。ユーザーの入力を検証し、必要な処理を最低1回は確実に行うことで、エラーチェックや無効な入力に対するロバストなプログラムを実現できます。繰り返し処理を適切に設計することで、柔軟なアプリケーションの構築が可能となります。
練習問題
これまで学んだ「repeat-while」ループの使い方を応用するために、以下の練習問題に取り組んでみましょう。これらの問題を解くことで、実際に「repeat-while」ループをどのように活用できるかを確認することができます。
問題1: 正の整数の合計を計算
ユーザーに正の整数を入力させ、その合計が100を超えるまで繰り返し処理を行うプログラムを作成してください。入力された数値が負の数の場合は無視し、再度入力を促すようにしてください。
var total = 0
repeat {
print("正の整数を入力してください:")
let input = Int(readLine() ?? "") ?? 0
if input > 0 {
total += input
} else {
print("正の整数のみ入力してください。")
}
print("現在の合計: \(total)")
} while total <= 100
print("合計が100を超えました。最終合計は \(total) です。")
解説
このプログラムでは、ユーザーからの正の整数入力を合計し、合計が100を超えるまで繰り返します。負の数が入力された場合は無視し、再入力を促すことでプログラムが適切に動作します。
問題2: パスワード確認
ユーザーにパスワードを入力させ、正しいパスワードが入力されるまで繰り返し処理を行うプログラムを作成してください。正しいパスワードは"swift2024"
とします。3回以上間違えた場合、警告メッセージを表示してループを終了してください。
let correctPassword = "swift2024"
var attempts = 0
let maxAttempts = 3
var userInput: String
repeat {
print("パスワードを入力してください: ")
userInput = readLine() ?? ""
attempts += 1
if userInput == correctPassword {
print("ログイン成功!")
break
} else {
print("パスワードが間違っています。")
}
} while attempts < maxAttempts
if userInput != correctPassword {
print("試行回数が上限に達しました。ログインに失敗しました。")
}
解説
このプログラムでは、ユーザーがパスワードを入力し、3回まで試行を許可します。正しいパスワードが入力されればループを終了し、成功メッセージを表示しますが、3回の失敗後は強制的に終了し、警告メッセージを表示します。
問題3: ユーザー選択による数値の二乗計算
ユーザーに数値を入力させ、その数の二乗を表示するプログラムを作成してください。ユーザーが「終了」と入力するまで、繰り返し数値を入力させるようにしてください。
var userChoice: String
repeat {
print("数値を入力してください (または '終了' と入力):")
let input = readLine() ?? ""
if input.lowercased() == "終了" {
userChoice = "終了"
} else if let number = Int(input) {
print("入力された数値の二乗は \(number * number) です。")
userChoice = ""
} else {
print("無効な入力です。数値を入力してください。")
userChoice = ""
}
} while userChoice != "終了"
print("プログラムを終了します。")
解説
このプログラムは、ユーザーが「終了」と入力するまで、数値の二乗を計算して表示します。入力が数値でない場合はエラーメッセージを表示し、再度入力を促します。
まとめ
これらの練習問題を通じて、「repeat-while」ループの特性を理解し、さまざまな場面での応用ができるようになります。プログラムの設計時に、ループが最低1回は実行される必要がある場合、「repeat-while」ループを使うことでより効率的な処理を実現できます。
まとめ
本記事では、Swiftの「repeat-while」ループを使って最低1回の実行が保証される繰り返し処理について解説しました。基本構文から実践的な使用例、複雑な条件付き処理やユーザー入力を活用した応用例、さらにはテストとデバッグの方法についても説明しました。これにより、「repeat-while」ループの特性と使いどころが明確になり、適切にループを使用して効率的なプログラムを作成することができるようになります。
コメント