質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

3回答

981閲覧

PHP for文と条件式の組み合わせ

yukinari302

総合スコア19

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2020/10/05 12:32

前提・実現したいこと

for文と条件式の組み合わせ
20 ~ 50までの数字の中で2で割ったら奇数となる数字のみを出力してください

発生している問題・エラーメッセージ

変数$divにて2で割った値を変数で宣言しました。 しかし変数$divに対して、小数かどうか判定するためのif文の書き方が分からず困っております。 2日ほど考えたです解決出来ませんので教えていただけたら幸いです。 よろしくお願い致します。

該当のソースコード

<?php for($i = 20; $i <= 50; $i++){ $div = $i / 2 === 1; if(is_int($div)){ continue; } } echo $i.PHP_EOL; ?>

試したこと

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

ベストアンサー

2で割ったら奇数

4で割ったらあまりが2の数です

php

1for($i = 20; $i <= 50; $i++){ 2 if($i%4==2){ 3 echo $i.PHP_EOL; 4 } 5}

投稿2020/10/05 12:35

yambejp

総合スコア114979

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yukinari302

2020/10/05 13:02

yambejpさん ご回答いただきまして誠にありがとうございました。 おかげさまで上記問題の回答が出ました。 この問題を見たときに 「4で割ったらあまりが2の数」という解き方が分からないので もし宜しければ教えて頂けないでしょうか。
marusa

2020/10/05 23:29 編集

横からで失礼いたします。 4で割ったら余りが2となる数が2で割って奇数になる ということの理由がわからないという前提です。 4で割って余りが2となる数は 4n + 2 (nは正の整数)と表現できますよね。問題文の制約で言うと 26(n = 6), 34(n = 8)等。 4n + 2で表現される数を2で割ると、(4n + 2) / 2 = 2n + 1です。 これは奇数を表す表現なので、4で割って余りが2となる数は2で割って奇数になる、 と言うことができます。 上記は証明ですが、解法を導くという意味であれば - 2で割り切れる - 割った結果が奇数表現になる の2点から導くことができると思います。 //追記 もっと単純に 奇数を2倍した数なら2で割って奇数になる と考えてもいいでしょう。
yukinari302

2020/10/06 11:44

marusaさん 詳しく解説して頂きまして誠にありがとうございます。 おかげさまで解き方を理解することができました。 プログラミング以前に数字の解法を理解出来ていなかったのだと自覚しました。 自分が本当はどこで詰まっているのかをしっかりと見極めコードを書いていきたいと思います。 本当にありがとうございます!
guest

0

求めている回答とは違うかもしれませんが、

<?php for($i = 20; $i <= 50; $i++){ if( ($i % 2) != 0){ echo "$i\n"; } } ?>

こういう書き方があります。参考までに。。

投稿2020/10/05 22:36

Suumon

総合スコア211

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yukinari302

2020/10/06 11:23

Suumonさん ご回答頂きましてありがとうございました。 試したところ2で割ったら奇数となる数字が出力されました。 また演算子「!=」についても理解する事ができました!
guest

0

投稿2020/10/05 12:36

firegrape

総合スコア902

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yukinari302

2020/10/05 13:13

firegrapeさん ご回答頂きましてありがとうございます。 関数is_floatについて調べて見たのですが 変数の型がfloatの場合はtrue、floatじゃない場合はfalseを返すという事が分かりました。 ご紹介頂いたURLと他サイトをググって見てみたのですが、 やはりif文がうまく書けません。 もしよろしければ教えて頂けませんでしょうか。 <?php for($i = 20; $i <= 50; $i++){ $div = $i / 2 === 1; if(bool is_float(mixed $div)){ continue; } } echo $i.PHP_EOL; ?>
firegrape

2020/10/05 13:18

for($i = 20; $i <= 50; $i++){ $div = $i / 2; if(is_float($div)){ echo '少数です'; }else{ echo '少数ではないです'; } } これでどうでしょうか?
yukinari302

2020/10/06 11:29

firegrapeさん ご返信ありがとうございます。 「少数です」という文字が繰り返し出力されました。 is_float関数の使い方について理解することができました。 ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問