[解決済み] string literal in condition "とはどういう意味ですか?
2022-02-12 04:05:37
質問
プログラムを実行しようとすると、「"string literal in condition (on line 10)"」というエラーが表示されるのですが。何が間違っているのでしょうか?
puts "Welcome to the best calculator there is. Would you like to (a) calculate the area of a geometric shape or (b) calculate the equation of a parabola? Please enter an 'a' or a 'b' to get started."
response = gets.chomp
if response == "a" or "A"
puts "ok."
elsif response == "b" or "B"
puts "awesome."
else
puts "I'm sorry. I did not get that. Please try again."
end
解決方法は?
の両側で、完全な条件を指定する必要があります。
or
.
if response == "a" or response == "A"
の両側は
or
Ruby では、左側にあるものを基準にして右側にあるものを推測することはありません。 右辺が素の文字列である場合
"A"
以外のものは
false
または
nil
は "true" と見なされるので、式全体は常に "true" として評価されます。しかし、Rubyはこの式が文字列であり、実際にはブール値ではないこと、あなたが意図したとおりに指定されていない可能性があることに気付き、質問にあるような警告を発します。
また
case
を使うと、ひとつの値に対して複数のテストを行うのが簡単になります。
when
の場合、それらは事実上
or
を一緒に編集しています。
case response
when "a","A"
puts "ok"
when "b","B"
puts "awesome."
else
puts "I'm sorry. I did not get that. Please try again."
end
アルファベットの大文字と小文字を無視するという特殊な状況に対しては、テストの前に大文字と小文字のどちらかに変換すればいいということもできます。
case response.upcase
when "A"
puts "ok"
when "B"
puts "awesome."
else
puts "I'm sorry, I did not get that. Please try again."
end
関連
-
[解決済み】macOSでrbenvをアンインストールする方法とは?
-
[解決済み] JavaScriptで文字列が部分文字列を含むかどうかを確認する方法は?
-
[解決済み] C#のStringとstringの違いは何ですか?
-
[解決済み] JavaでInputStreamを読み込んでStringに変換するにはどうすればよいですか?
-
[解決済み] なぜパスワードにはStringではなくchar[]が好まれるのですか?
-
[解決済み] Pythonには文字列の'contains'サブストリングメソッドがありますか?
-
[解決済み] 文字列の単語を反復処理するにはどうすればよいですか?
-
[解決済み] バイトを文字列に変換する
-
[解決済み】JavaScriptで文字列の出現箇所をすべて置換する方法
-
[解決済み】大文字・小文字を区別しない「Contains(string)
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] nil:NilClass のための未定義のメソッド `+' (NoMethodError)
-
[解決済み] Ruby、スタックレベルが深すぎる (SystemStackError)
-
[解決済み] Rubyがブロックの中でパイプ文字を使うことについて、誰か説明してください。
-
[解決済み] ルビー最大整数
-
[解決済み] Rubyのコロン演算子とは何ですか?
-
[解決済み] Ruby で PDF 文書を解析する
-
[解決済み] Rubyでfailキーワードは何をするのですか?
-
[解決済み] Rubyの予期しないキーワードの終了、および予期しない入力の終了
-
[解決済み] Ruby 2.0.0p0 IRB警告。"DLは非推奨です。Fiddleをお使いください。"
-
[解決済み] Rubyで指定されたディレクトリが存在するかどうかを確認する方法