none
迴圈問題 RRS feed

  • 問題

  • 如何使用 for迴圈
    顯示下列圖形
    ........*
    .......*.*
    ......*...*
    .....*.....*
    ......*...*
    .......*.*
    ........*


    謝謝sayakaja   和下列幾位朋友的回答
    我已經 用三個連續for迴圈case do while 寫出來了
    謝謝 sayakaja的建議 你的方法讓我有頭緒
    • 已編輯 max8372 2010年1月9日 上午 02:40
    2010年1月8日 下午 03:36

解答

  • 上面前輩說的都是正確的思路
    我這邊這個方法也是依這樣做出來的

    不過可能有更好的寫法~^^
    一開始先寫出
    . . . . . . . . * . . .
    . . . . . . . * . * . .
    . . . . . . * . . . * .
    . . . . . * . . . . . *
    . . . . . . * . . . * .
    . . . . . . . * . * . .
    . . . . . . . . * . . .
    然後再變成
    . . . . . . . . *
    . . . . . . . * . *
    . . . . . . * . . . *
    . . . . . * . . . . . *
    . . . . . . * . . . *
    . . . . . . . * . *
    . . . . . . . . *
            private void Form1_Load(object sender, EventArgs e)
            {
                string k="";
                for (int i = 0; i < 7; i++)
                {
                    for (int y = 0; y < 12; y++) 
                    {
                        if (y == 8 && i == 0)
                            k += "*";
                        else if((y == 7 && i == 1)||(y == 9 && i == 1))
                            k += "*";
                        else if ((y == 6 && i == 2) || (y == 10 && i == 2))
                            k += "*";
                        else if ((y == 5 && i == 3) || (y == 11 && i == 3))
                            k += "*";
                        else if ((y == 6 && i == 4) || (y == 10 && i == 4))
                            k += "*";
                        else if ((y == 7 && i == 5) || (y == 9 && i == 5))
                            k += "*";
                        else if (y == 8 && i == 6)
                            k += "*";
                        else if ((y == 9 && i == 0) || (y == 10 && i == 0) || (y == 11 && i == 0))
                            k += "";
                        else if ((y == 10 && i == 1) || (y == 11 && i == 1))
                            k += "";
                        else if (y == 11 && i == 2)
                            k += "";
                        else if (y == 11 && i == 4)
                            k += "";
                        else if ((y == 10 && i == 5) || (y == 11 && i == 5))
                            k += "";
                        else if ((y == 9 && i == 6) || (y == 10 && i == 6) || (y == 11 && i == 6))
                            k += "";
                        else
                            k += "‧";
                    }
                    k += "\n";
                }
                MessageBox.Show(k);
            }
    • 已標示為解答 max8372 2010年1月9日 上午 02:30
    • 已取消標示為解答 max8372 2010年1月9日 上午 02:30
    • 已標示為解答 max8372 2010年1月9日 上午 02:35
    2010年1月8日 下午 04:02

所有回覆

  • Hi!

    請先展現努力成果

    您覺得難是難在哪邊 ? 有程式寫出來,但是圖形不對嗎 ?

    另外,你的 . 是為了排列整齊而 key 出來嗎? 還是連 . 都要印出來?


    我的Blog .NET菜鳥自救會
    2010年1月8日 下午 03:45
    版主
  • 找出 "." 和  "*" 的規則然後依規則設定迴圈.


    MSDN 文件庫很重要
    問題本身越具體, 越容易得到大家的回應
    回應幫助你的人是一種禮貌, 良好的禮貌有助於激發大家對你問題回應的熱情
    2010年1月8日 下午 03:55
    版主
  • 上面前輩說的都是正確的思路
    我這邊這個方法也是依這樣做出來的

    不過可能有更好的寫法~^^
    一開始先寫出
    . . . . . . . . * . . .
    . . . . . . . * . * . .
    . . . . . . * . . . * .
    . . . . . * . . . . . *
    . . . . . . * . . . * .
    . . . . . . . * . * . .
    . . . . . . . . * . . .
    然後再變成
    . . . . . . . . *
    . . . . . . . * . *
    . . . . . . * . . . *
    . . . . . * . . . . . *
    . . . . . . * . . . *
    . . . . . . . * . *
    . . . . . . . . *
            private void Form1_Load(object sender, EventArgs e)
            {
                string k="";
                for (int i = 0; i < 7; i++)
                {
                    for (int y = 0; y < 12; y++) 
                    {
                        if (y == 8 && i == 0)
                            k += "*";
                        else if((y == 7 && i == 1)||(y == 9 && i == 1))
                            k += "*";
                        else if ((y == 6 && i == 2) || (y == 10 && i == 2))
                            k += "*";
                        else if ((y == 5 && i == 3) || (y == 11 && i == 3))
                            k += "*";
                        else if ((y == 6 && i == 4) || (y == 10 && i == 4))
                            k += "*";
                        else if ((y == 7 && i == 5) || (y == 9 && i == 5))
                            k += "*";
                        else if (y == 8 && i == 6)
                            k += "*";
                        else if ((y == 9 && i == 0) || (y == 10 && i == 0) || (y == 11 && i == 0))
                            k += "";
                        else if ((y == 10 && i == 1) || (y == 11 && i == 1))
                            k += "";
                        else if (y == 11 && i == 2)
                            k += "";
                        else if (y == 11 && i == 4)
                            k += "";
                        else if ((y == 10 && i == 5) || (y == 11 && i == 5))
                            k += "";
                        else if ((y == 9 && i == 6) || (y == 10 && i == 6) || (y == 11 && i == 6))
                            k += "";
                        else
                            k += "‧";
                    }
                    k += "\n";
                }
                MessageBox.Show(k);
            }
    • 已標示為解答 max8372 2010年1月9日 上午 02:30
    • 已取消標示為解答 max8372 2010年1月9日 上午 02:30
    • 已標示為解答 max8372 2010年1月9日 上午 02:35
    2010年1月8日 下午 04:02