[問題] 測試小朋友九九乘法表的程式問題

看板C_Sharp (C#)作者 (盛夏午後)時間13年前 (2011/11/11 16:09), 編輯推噓3(3010)
留言13則, 5人參與, 最新討論串1/2 (看更多)
小弟我是剛學習C#的初學者, 有個程式目的是要用來檢驗小朋友的九九乘法表是否熟練, 要隨機產生兩個變數相乘,然後讓小朋友輸入答案, 若是答對,顯示非常好,然後顯示下一題(不一樣的題目), 就這樣一直下去. 若是答錯,顯示錯了再試一次,然後顯示同一題的題目,直到答對為止. 以上這是題目. 然後我想要把隨機亂數出題的部分寫成一個副程式, 判斷小朋友輸入的答案是否正確為另一個副程式 然後從主程式裡面去呼叫,這樣的方式去寫, 我的問題是: 我不會讓答對了的題目一直做下去,變成一直循環這樣, 還有錯了之後我不會讓他在顯示同樣的題目,直到做對換題這樣, 我一直想不出來該怎麼去修改, 想請有經驗的高手們幫我看一下, 跟我指正一下哪裡做錯了… 我把我的程式PO上來, 請高手幫個忙, 謝謝你!! 以下是我的程式 using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Multiplication { class Multiplication { public static void Main(string[] args) { Console.WriteLine("Welcome to Multiplication"); Console.WriteLine("Please answer the following question"); int [] com; com = question(); Correct(com[0],com[1]); } public static int[] question() { System.Random number = new Random(); int a = number.Next(1, 9); int b = number.Next(1, 9); Console.WriteLine("How much is {0} times {1}?", a, b); int input = Convert.ToInt32(Console.ReadLine()); int ans = a * b; int [] com = new int[]{input,ans}; return com; } public static void Correct(int input, int ans) { if (input != ans) Console.WriteLine("No.Please try again."); else Console.WriteLine("Very Good!"); question(); } } } -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 58.115.161.98

11/11 17:06, , 1F
http://pastie.org/2846131 大概是這種感覺
11/11 17:06, 1F

11/11 17:56, , 2F
如果不用while去寫 會很複雜嗎?
11/11 17:56, 2F

11/11 19:54, , 3F
你可以改用 for, 不過應該不會比較簡單
11/11 19:54, 3F

11/11 19:55, , 4F
for 跟 while 都不要的話,那就只好用 goto 了
11/11 19:55, 4F

11/11 20:40, , 5F
為什麼不要用while?
11/11 20:40, 5F

11/11 21:05, , 6F
沒有特別原因,只是想問問看有沒有不用while的寫法這
11/11 21:05, 6F

11/11 22:40, , 7F
感謝james大大提供的方法^^
11/11 22:40, 7F

11/12 00:10, , 8F
遞迴也可以阿 開一個function input:題目
11/12 00:10, 8F

11/12 00:11, , 9F
如果他答對,則再出題目呼叫同個function;否則就丟原題目
11/12 00:11, 9F

11/12 00:32, , 10F
遞迴一直進去,可能會有 stack overflow 問題
11/12 00:32, 10F

11/12 00:32, , 11F
雖然要回答到 overflow 應該也要玩得夠久...XD
11/12 00:32, 11F

11/14 09:54, , 12F
遞回,且要防止退棧overflow,可以用異步方式
11/14 09:54, 12F

11/14 09:55, , 13F
示例代碼推文寫不下,回復到看板里了
11/14 09:55, 13F
文章代碼(AID): #1ElDWYeL (C_Sharp)
文章代碼(AID): #1ElDWYeL (C_Sharp)