-1

我需要按t两次才能获得任何输出;否则程序直接进入 else 条件或给出异常处理程序错误。我在这里做错了什么?

正如你们所看到的,有两个类一个twotable和另一个program包含主要方法。我正在尝试使用twotable类的调用方法获取输出。

namespace ConsoleApplication6
{               
    class twotable        
    {        
        public static void two()
        {
            int i;
            int j;
            for (i = 1; i <= 10;i++)
            {
                for (j = 2; j <= 2;j++ )
                {
                    Console.WriteLine(i * j);
                }
            }
        }
    }

    class Program
    {
        static void Main()
        {
            Console.WriteLine("Press t for two table");
            char c = Convert.ToChar(Console.ReadLine());
            {
                char t = Convert.ToChar(Console.ReadLine());
                if (c == t)
                {

                    twotable.two();
                }
                else
                {

                    Console.WriteLine("i hate u");
                }
            }
        }
    }
}
4

5 回答 5

1

您正在从控制台读取两次。

代替

char t = Convert.ToChar(Console.ReadLine());
if (c == t)

你需要

if (c == 't')
于 2012-08-15T11:23:03.007 回答
1

您是否希望用户在不同的 ReadLine() 上输入字符 't' 两次以显示输出?如果是这样:

    static void Main()
    {

        Console.WriteLine("Press t for two table");
        char c1 = Convert.ToChar(Console.ReadLine());
        char c2 = Convert.ToChar(Console.ReadLine());

        if (c1 == 't' && c2 == 't')
        {
            twotable.two();
        }
        else
        {
            Console.WriteLine("i hate u");
        }
    }

或者您想在一个 ReadLine() 中读入“tt”吗?

    static void Main()
    {

        Console.WriteLine("Press t for two table");
        string input = Console.ReadLine();

        if (input.Equals("tt"))
        {
            twotable.two();
        }
        else
        {
            Console.WriteLine("i hate u");
        }
    }
于 2012-08-15T11:25:49.490 回答
0

我认为你的问题在这里 - char c。你在char c 比较char t

这两行都要求用户输入。

char c = Convert.ToChar(Console.ReadLine());

于 2012-08-15T11:22:26.993 回答
0

代码有点乱,但即使在这段代码上也是如此

char c = Convert.ToChar(Console.ReadLine());
...
{
    char t = Convert.ToChar(Console.ReadLine());
.....
}

你打电话Console.ReadLine(...)2次,所以你需要按t2次。很难说,但可能你想做这样的事情:

char t = 't';
...
{
    char consoleChar = Convert.ToChar(Console.ReadLine());
    if(consoleChar == t) // or simple if(consoleChar == 't')
    {
       //do something here, we get a t symbol from console
    }
.....
}
于 2012-08-15T11:24:25.587 回答
0

我需要Console.ReadKey改用,并测试c == 't'

获取用户按下的下一个字符或功能键。

你的代码是这样的:

var cki = Console.ReadKey();
if (cki.KeyChar == 't')
{
    ...
}
于 2012-08-15T11:26:55.943 回答