実現したいこと
現在、ターミナル上で実行できる計算アプリを作成しているのですが、ユーザー側が入力した「+,-,,/」の判別で躓いています。
str_containsを使って、文字の判別を行い、上記の「+,-,,/」以外が入力された場合、エラーで返して、繰り返しユーザー側に入力を求めるプログラムを作りたいです。
「+」のみ等、単体の判別は出来たのですが、上記の4つを同時に判別するプログラムが完成できません。
もしよろしければご教示頂けると幸いです。
該当のソースコード
PHP
1echo "+,-,*,/のいずれかを入力してください\n"; 2$i = trim(fgets(STDIN)); 3 4while(!str_contains($i,'+')){ 5 echo "エラーです\n"; 6 $i = trim(fgets(STDIN)); 7}
試したこと
①配列を用いる
$word_list = array('+','-','*','/'); foreach($word_list as $words){ while(!str_contains($i,$words)){ echo "エラーです\n"; $i = trim(fgets(STDIN)); } }
を試してみましたが、エラーで実行されませんでした。
②orを用いる
while(!str_contains($i,'+') or !str_contains($i,'-') or !str_contains($i,'*') or !str_contains($i,'/')){ echo "エラーです\n"; $i = trim(fgets(STDIN)); }
こちらもエラーでした。
③$words = '/+|-/';の形を使う
こちらを試してみたのですが、「/」が外側の//と差別化できないとエラーが出てしまいました。
また/を÷に変更しようとしたら、計算自体処理できなくなってしまいました。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/04/29 04:11
2021/04/29 04:18