0

私は以下のコードを持っています:

<html>

<head>
    <title> Eloquent Javascript Ex 2 </title>

<script language = "javascript">

    /*
    function twoPowerTen()
    {
        var result = 1;
        var counter = 0;

        while( counter < 10 )
        {
            result = 2 * result;
            document.writeln( result );
            counter = counter + 1;
        }
    }   

    int limit = 1;

    for( int y = 0; y < 5; y++ )
    {
        for( int x = 0; x < limit; x++ )
        {
            System.out.print( "*" );
        }
        System.out.println();
        limit = limit + 1;
    }
    */

    function drawTriangle()
    {
        var limit = 1;

        for( var y = 0; y < 5; y++ )
        {
            for( var x = 0; x < limit; x++ )
            {
                document.write( "*" );
            }
            document.write( "<br>" );
            limit = limit + 1;
        }
    }

    function whileDrawTriangle()
    {
        var limit = 1;
        var x, y = 0;

        while( y < 5 )
        {
            while( x < limit )
            {
                document.write( "*" );
                x++;
            }
            limit = limit + 1;
            y++;
        }
    }

</script>

</head>

<body>
<input type = "button" value = "Draw # Triangle" onClick = "whileDrawTriangle()" />
</body>


</html>

ボタンを押したときに実行したくないようです-画面にアスタリスクの三角形を出力すると思われます。ところで、HTML がうまく構築されていないことはわかっていますが、要点は基本的な JavaScript を実装することです。

どうしたの?

4

3 に答える 3

2

あなたdrawTriangleMethodは呼び出されることはありません。それを呼び出すボタンを追加するか、onClickその関数を呼び出すように変更できます。whileDrawTriangleメソッドに関しては、 y変数を0に初期化するだけですが、 xは残っundefinedているため、ループになるとテストに失敗x < limitします。

xyの両方を初期化したい場合は、明示的に行う必要があります

例えば

 var x = 0, y= 0;

ここにjsBinがあります

于 2012-11-19T16:54:25.597 に答える
1

onClick = "drawTriangle()"代わりにコードを変更すると、正常onClick = "while DrawTriangle()"に動作します。

jsFiddle の例

于 2012-11-19T16:46:24.340 に答える
1

変数 x を 0 に初期化する必要があります。

于 2012-11-19T16:46:50.687 に答える