-1
<html>
<head>
<title>DIsplaying triangle /square</title>

<script type="text/javascript">
document.write("<html><body><p style='line-height:100%;>");
var sides=prompt("Enter the number of sides","3/4");
if(sides==4)
{
    var i=0;

    var j=0;
    var z=0;
    while(i<=6)
    {   
        if(i==0||i==6)
        {
            while(j<=6)
            {
                document.write("*");    
                document.write("<span style='visibility:hidden'>*</span>");
                ++j;
            }
            j=0;
            document.write("<br\>");
        }
        else 
        {
            while(z<=6)
            {
                if(z==0||z==6)
                {
                    document.write("*");
                    document.write("<span style='visibility:hidden'>*</span>");
                }
                else
                {
                    document.write("<span style='visibility:hidden'>*</span>");
                    document.write("<span style='visibility:hidden'>*</span>");
                }
                ++z;
            }
            z=0;
            document.write("<br\>");
        }
        ++i;
    }
    document.write("</p></body></html>");
}
else
{
    var i=0;
}
</script>
</head>
</html>

4プロンプトボックスに入力したときの出力は次のようになります。

* * * * * * *
* * * * * * *
* * * * * * *
* * * * * * *
* * * * * * *
* * * * * * *
* * * * * * *

(完全な正方形と考えてください。ここに描くのは難しいです。)

しかし、私は得る:

** * * * * *
* * * * * * *
* * * * * * *
* * * * * * *
* * * * * * *
* * * * * * *
* * * * * * *

最初の行を見てください。最初の 2 つの「*」が一緒になっています。コードによると、それは発生しないはずです。その部分で何かがうまくいかないdocument.write("*")。私が発見したことを使用してデバッグを試みたときalert、最初の時間 (つまり、i=0 のとき) は最初のものdocument.write("*")が無視されることがわかりました。しかし、それは考慮されます。

4

2 に答える 2

0

これをチェックしてください:http://jsbin.com/efehiv/1/edit

この行は私には悪く見えます:

document.write("<html><body><p style='line-height:100%;>");
于 2013-02-18T13:43:31.960 に答える