我是C#新手,这个程序执行时很怪异,判断似乎不起作用,而且还多次输出,很扯。谁能告诉我问题在哪吗?谢谢各位了啊
using System;
using System.Collections.Generic;
using System.Text;namespace c_3_1
{
    class Program
    {
        static void Main(string[] args)
        {
            int number;
            int newNumber;
            int n;
            Console.WriteLine("本程序为猜数字游戏");
            Random r = new Random();
            newNumber = r.Next(1, 100);
            n = 0;
            Console.Write("请输入0-100之间的任意整数:");
         s: number = Console.Read();
            while (number != newNumber)
            {
                if (number > newNumber)
                {
                    Console.Write("数太大,请重新输入:");
                  
                }
                if (number < newNumber)
                {
                    Console.Write("数太小,请重新输入:");
                  
                }
                goto s;
            }
            if (number ==newNumber)
            {
                n += 1;
                Console.Write("恭喜,猜对了,共猜了"+n+"次");
            }        }
    }
}

解决方案 »

  1.   

    using System;
    using System.Collections.Generic;
    using System.Text;namespace c_3_1
    {
    class Program
    {
    static void Main(string[] args)
    {
    int number;
    int newNumber;
    int n;
    Console.WriteLine("本程序为猜数字游戏");
    Random r = new Random();
    newNumber = r.Next(1, 100);
    n = 0;
    Console.Write("请输入0-100之间的任意整数:");
    s: 
    number = Convert.ToInt32(Console.ReadLine());
    n++;

    while (number != newNumber)
    {
    if (number > newNumber)
    {
    Console.Write("数太大,请重新输入:"); }
    if (number < newNumber)
    {
    Console.Write("数太小,请重新输入:"); }
    goto s;
    }
    if (number == newNumber)
    {
    Console.Write("恭喜,猜对了,共猜了" + n + "次");
    Console.Read();
    } }
    }
    }
      

  2.   

    f11一行一行走,发现第二次执行 s: number = Console.Read();
    时没有让再输入,怎么回事啊?
      

  3.   

    还是用goto s;设置断点单步跟踪
      

  4.   

    你原来的代码读出来的是输入内容中第1个这字符的ASCII码,比如输入的是30,你取出来的结果是3的ASCII码:51。
      

  5.   

    你的代码问题太多,请仔细观察不同之处do//这个没必要用goto,建议用do-while
    {
        number = int.Parse(Console.ReadLine()) 
        n++; //你的n没参与循环,最后还是1,    
        if (number > newNumber)
        {
            Console.Write("数太大,请重新输入:");                  
        }
        if (number < newNumber)
        {
            Console.Write("数太小,请重新输入:");                  
        }
        while(number != newNumber)     
        Console.Write("恭喜,猜对了,共猜了"+n.Tostring()+"次");
    }
      

  6.   

    Console.Read()不能自动清理内存,无法第2次读取
    Console.ReadLine()正解