今回は1000~2000と範囲が定まっているので1桁目が7になる最初の値とかそりゃあ1007ですよね!
ってすぐにわかってしまうのであれですが、例えば範囲にどんな数値がきたとしても
常に1桁目に7がくる最初の数値を求められれば問題の要件も満たせそうですよね。
(どのような範囲が指示されても1桁目が7になる最初の値を出力できる想定)
ttyp03さんがご回答している通り、
- 10で割った余りが7であるかどうかをチェックする
- 右から1文字を取得してそれが7であるかどうかをチェックする
これらの方法で1桁目が7になる数値というのは判別できます。
なので後は、最初にきた、というものを出力してそれ以外は処理しないようにしてやればよいと思います。
php
1for($i=1000; $i<=2000; $i++){
2 if($i % 10 == 7) echo $i.PHP_EOL;
3 //substrの場合は if(substr($i,-1,1) == 7) となる
4}
例えばこの場合では1000~2000の間にある1桁目が7となる全ての数を出力してしまいます。
欲しいのは最初に出力された1007だけですね。なので、最初に条件を満たした時、
繰り返し処理を抜けるようにします。
php
1$result = false;
2
3for($i=1000; $i<=2000 && !$result; $i++){
4 if($i % 10 == 7) result = $i;
5}
6
7echo $result;
8echo PHP_EOL;
一例ですが、このようにすると1桁目が7となる最初の値がヒットした時点で
ループ処理を抜けるようになるので一番最初の1007のみが出力できます。