ユーザー入力の取得
CoddyのRジャーニー「基礎」セクションの一部 — レッスン 34/78。
チャレンジ
簡単前回のレッスンでは、割り勘計算機(Bill Split Calculator)のウェルカムメッセージを作成しました。今回は、お会計の計算に必要なユーザー入力を収集する機能を追加しましょう。
既存のウェルカムメッセージの後に、ユーザーから3つの入力を読み取ります:
- お会計の総額
- チップのパーセンテージ(整数として。例:15%の場合は
15) - お会計を分ける人数
(このプラットフォームのように)非対話形式で実行されるRスクリプトでは、入力は標準入力ストリームから読み取られます。これを行うには、まず file() を使用して stdin への接続を開き、次に readLines() で各行を読み取り、完了したら接続を閉じます:
con <- file("stdin", "r")
bill <- as.numeric(suppressWarnings(readLines(con, n = 1)))
tip_percent <- as.numeric(suppressWarnings(readLines(con, n = 1)))
people <- as.numeric(suppressWarnings(readLines(con, n = 1)))
close(con)各パーツの役割は以下の通りです:
file("stdin", "r")— 読み取り用に標準入力ストリームを開き、それをconに保存しますreadLines(con, n = 1)— その接続から正確に1行を読み取りますsuppressWarnings(...)— この方法でstdinから読み取る際に発生する無害な警告を非表示にしますas.numeric(...)— テキスト入力を数値に変換しますclose(con)— すべての入力が読み取られた後、接続を閉じます
3つの値を bill、tip_percent、および people という名前の変数に格納してください。
入力を読み取った後、入力された内容を以下の形式で表示する確認メッセージを出力してください:
Bill: $[bill]
Tip: [tip_percent]%
People: [people]すべての出力に cat() を使用し、必要に応じて改行文字 \n を含めてください。不要なスペースを避けるために、各 cat() 呼び出しで sep = "" を使用してください。
例えば、入力が 120、18、4 の場合、完全な出力は以下のようになります:
Welcome to the Bill Split Calculator!
Let's split your bill fairly.
Bill: $120
Tip: 18%
People: 4自分で試してみよう
# TODO: Write your code below
# Use cat() to display the welcome message
# Remember to use \n for new lines
cat("Welcome to the Bill Split Calculator!\nLet's split your bill fairly.\n")