ミスチルの大名曲の数々が配信決定!! 31日間無料!!

PHPを勉強中です。
勉強の為に思いついたものをPHPで書いてみようと思い、ネタが古いですが100までの数字を表示し、見やすいように3桁揃えで10ずつで改行して、3の倍数と3のつく数字を太字で表示するプログラムを書いてみました。なんとなくできたようなかんじなのですが、30だけ太字になりません。原因がわかる方がいらっしゃれば教えていただけたら嬉しいです。よろしくお願いします。

<?php
for($i = 1; $i <= 100; $i++){
if($i % 10 == 0) {
echo sprintf('%03d', $i)." "."<br>";
}
elseif($i % 3 == 0) {
echo('<strong>'.sprintf('%03d', $i)." ".'</strong>');
}elseif(strpos($i,"3") !== false) {
echo('<strong>'.sprintf('%03d', $i)." ".'</strong>');
}else{
echo sprintf('%03d', $i)." ";
}
}
?>

このQ&Aに関連する最新のQ&A

PHP 勉強」に関するQ&A: PHP 勉強し始める

A 回答 (2件)

30を10で割るとあまりが0なので仕様が競合していますね


とりあえずこんな感じでは?

<?php
for($i = 1; $i <= 100; $i++){
$str=sprintf("%03d", $i);
if(($i % 3) == 0 or strpos((string) $i,"3") !== false) {
echo("<strong>".$str."</strong>");
}else{
echo $str;
}
echo " ";
if($i % 10 == 0) echo "<br>\n";
}
?>
    • good
    • 0
この回答へのお礼

意図した通りに表示されました!
スマートな回答ありがとうございました。
自分のと見比べてどこがダメだったのか研究してみたいと想います。
本当にありがとうございました!

お礼日時:2013/03/08 08:31

>if($i % 10 == 0) {


>echo sprintf('%03d', $i)." "."<br>";
>}

これいらないだろ
削ったあと、elseifはいきなり登場できないのでifに。

http://ideone.com/4L0rJM
    • good
    • 0
この回答へのお礼

リンク先のプログラムありがとうございます!
見比べて勉強してみたいと思います。
ありがとうございました!

お礼日時:2013/03/08 08:37

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Q3のつく数字と3の倍数のみを表示するプログラム

C言語で3のつく数字と3の倍数のみ(1~150)を表示するプログラムを作りたいのですがどうすればいいのでしょうか?

Aベストアンサー

数字で全部処理するとしたら、ある数x(1~150)について

・xが3で割り切れるかどうか?(x%3が0かどうか)
・xの下1桁目が3であるかどうか?(x%10が3かどうか)
・xの下2桁目が3であるかどうか?(x%100/10が3かどうか)

以上のことをif文等で場合分けすればいいかなと思います。
(汎用性を考えるなら、No.2さんの考え方の方が良いです)

Qフォントの色を変えるには?

こんにちは。PHPでのフォントの色の変更について質問があります。
任意の文字列の色だけを変更したいのですが、下のコードではエラーになってしまいます。
どこがまずいのかご指摘いただければ幸いです。
------------------------------
<HTML>
<HEAD>
<TITLE>TEST</TITLE>
</HEAD>

<BODY>

<?PHP
ECHO "<FONT COLOR="BLUE"> HELLO </FONT>";
ECHO "<FONT COLOR="RED"> GOOD BYE </FONT>";
?>

</BODY>
</HTML>

Aベストアンサー

BLUEやREDについてるダブルクォーテーションがエスケープされてないですね。
いろいろやりかたはありますが以下のどちらかがよいでしょう。

<?PHP
ECHO "<FONT COLOR=\"BLUE\"> HELLO </FONT>";
ECHO "<FONT COLOR=\"RED\"> GOOD BYE </FONT>";
?>

もしくは

<?PHP
ECHO '<FONT COLOR="BLUE"> HELLO </FONT>';
ECHO '<FONT COLOR="RED"> GOOD BYE </FONT>';
?>

Q1~100までの数字を表示し、かつその中から2の倍数を表示する

一つ前の質問で、for文を使って1~100までの数字を表示できるようになったのですが、タイトルのとおり、さらに条件を加えるにはどうしたら良いでしょうか、教えてください。

Aベストアンサー

おはようございます。
i%2の結果をご存知のようですので、
これを使えばよいかと思います。

i%2は2で割ったあまりを出力しますので、
0になれば2の倍数であるといえます。

制御文の中で条件分岐をすれば問題ありません。

if文はご存知でしょうか。
(javaでは「==」である点に注意してください。)

// 1から100まで。
for (int i = 1; i <= 100; i++) {
// 偶数であれば出力します。
if (i % 2 == 0) {
System.out.println(i);
}
}

参考URL:http://www.javaroad.jp/java_control2.htm

Qphp で1から100までの素数の表示の仕方を教えてください

剰余演算子%を使ってforeach for() if()を組み合わせて1から100までの素数の表示の仕方を教えてください、お願いします。
ちなみに100以下のすべての素数を求めるプログラムで、素数は、1とその数以外に約数を持たない数のことです。たとえば、1を除くと2,3,5,7,11・・・となります。

Aベストアンサー

<?php

//PHP 6.0.0 200801101530
//エラトステネスの篩はPHPでどうやるのか調べるのが面倒なので
//素直に行きます。
$array = array();
array_push($array,2);

for($i = 3;$i <= 100;$i++){
$k = true;
for($j = 2;$j < $i;$j++){
if ($i % $j == 0){
$k = false;
}
}
if ($k == true){
array_push($array,$i);
}
}

//foreach for() if()を組み合わせて・・・・って指定があるのでこっそり使用。
foreach($array as $val){
print($val . "\n");
}



?>

QPHPで偶数と奇数を判断するには

宜しくお願いします。
一覧表示等をする時に見やすいように一行ずつテーブルの色を変えたりすると思うのですが、これをPHPのfor文で自動的に交互に色を変えるようなプログラムを作ろうと思っております。for文で繰り返し処理場合、例えば、

for($n = 0; $n < 100; $n++)
{
 if($n = 偶数)
 {
 $bgcolor = "#ff0000";
 }
 elseif($n = 奇数)
 {
 $bgcolor = "#0000ff";
 }
}

といった形で交互に色を変るには、偶数/奇数の判断が出来ないと無理だと思うのですが、何か良い方法は無いでしょうか?

Aベストアンサー

if($n % 2 == 0) {
 偶数の処理;
} else {
 奇数の処理;
}

%は、割り算をした、余りです。
例)
3を2で割った余りは1
4を2で割った余りは0 

ANDで求める方法もあります。

またこの場合は、一度偶数で判定すれば、奇数の判定は不要です。

Qechoで画像を呼び出すことができない

現在、時刻によって呼び出す画像ファイルを変えようと思っています。その部分がこちらです


<HTML>
<HEAD>
<META name="GENERATOR" content="IBM WebSphere Homepage Builder V6.0.0 for Windows">
<META http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
<META http-equiv="Content-Style-Type" content="text/css">
<TITLE></TITLE>
</HEAD>
<BODY>

<?php
//時間によって表示する画像を変更

$now = date('H');
if($now > 18){
echo "<img src="(画像ファイル名)">;
}else{
echo "<img src="(画像ファイル名)">;
}
?>

</BODY>
</HTML>

echo内に他のhtmlタグを挿入すると普通に表示されるのですが、画像タグを挿入するとエラーが出ます。また、php外で画像タグを使用すると普通に表示されました。どなたか原因が分かる方いましたら教えて下さい、お願いします。

現在、時刻によって呼び出す画像ファイルを変えようと思っています。その部分がこちらです


<HTML>
<HEAD>
<META name="GENERATOR" content="IBM WebSphere Homepage Builder V6.0.0 for Windows">
<META http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
<META http-equiv="Content-Style-Type" content="text/css">
<TITLE></TITLE>
</HEAD>
<BODY>

<?php
//時間によって表示する画像を変更

$now = date('H');
if($now > 18){
echo "<img src="(画像ファイル名)">;
}...続きを読む

Aベストアンサー

echo "<img src="(画像ファイル名)">;
↑これを、↓このようにしても駄目ですか?
echo "<img src=\"画像ファイル名\">";

Q\n で改行する意味って??

最近少しPHPプログラミングを始めました。
なので超初心者です。

ネットなどでPHPのサンプルを見ていたら、よく『\n』というものを目にします。
調べてみたところ、エスケープシーケンスと呼び改行のような作用をする、という事は分かったのですが、
実際のサイト画面上では改行されないのに、何の為に使うんですか?そこが良く分かりません。

教えて下さい!!

Aベストアンサー

> 実際のサイト画面上では改行されないのに、何の為に使うんですか?
あえて言うなら、「ソースを確認する時に判りやすいように」ですかね。
「HTMLを手書きで入力するときに、なぜ改行を入れるのか」と同じ理由ではないでしょうか。
改行が全くないソースは見辛いので、私は改行を入れています。

また、ファイルから内容を読み込む時には、file関数を使えば、一行ずつ配列に格納できる、という利点があります。

$lines = file('data.log');

参考URL:http://jp.php.net/manual/ja/function.file.php

Qsyntax error, unexpected '}' というエラーの対処法

PHPを習い始めて三日目になるのですがParse error: syntax error, unexpected '}' in C:\Program Files\Apache Group\Apache2\htdocs\****\****\game.php on line 33
というエラーがでるのですが33行目前後のどこをなおせばいいのでしょうか?
・game.php
<html>
<head>
<title>数当てゲーム</title>
</head>
<body>
<h1 style="background:#cccccc">数当てゲーム</h1>
<form method="POST" action="game.php">
1~100までの数を入力してください
<input type="text" name="answer" size="5" maxlength="3" />
<input type="sbumit" value=回答" />
</form>
<hr />
<?php
session_start();
if(is_null($_SESSION['answer'])){
mt_stand(microtime()*1000000);
$_SESSION['answer']=mt_rand(1,100);
$_SESSION['game_cnt']=0;
}
if($_POST['answer']!=""){
$_SESSION['game_cnt']++;
if($_session['answer']==$_POST['answer']){
print("おめでとうございます".
$_SESSION['game_cnt']."回で正解しました!");
session_destroy();
}else{
if($_SESSION['answer']>$_POST['answer']){
print("もう少し大きいです。");
}else
print("もう少し小さいです。");
}
}
}
?>
</body>
</html>
それとこの間違えたところをなおしたあとはいつもコンピュータを再起動しないと修正したところが適用されないのですがほかに方法はないですか?基本的な質問ですいません。

PHPを習い始めて三日目になるのですがParse error: syntax error, unexpected '}' in C:\Program Files\Apache Group\Apache2\htdocs\****\****\game.php on line 33
というエラーがでるのですが33行目前後のどこをなおせばいいのでしょうか?
・game.php
<html>
<head>
<title>数当てゲーム</title>
</head>
<body>
<h1 style="background:#cccccc">数当てゲーム</h1>
<form method="POST" action="game.php">
1~100までの数を入力してください
<input type="text" name="answer" size="5" max...続きを読む

Aベストアンサー

print("もう少し大きいです。");
}else
print("もう少し小さいです。");
のelseの後に{がないようですが、大丈夫でしょうか?


人気Q&Aランキング