-1

t出力を取得するには、2回押す必要があります。それ以外の場合、プログラムは直接else条件に入るか、例外ハンドラエラーを出します。私はここで何が間違っているのですか?

ご覧のとおり、mainメソッドを含むクラスが2つtwotableあります。クラスprogramのinvokeメソッドを使用して出力を取得しようとしています。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

コンソールから2回読んでいます。

それ以外の

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

あなたが必要です

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

出力を表示するために、ユーザーが別々のReadLine()に文字「t」を2回入力するようにしますか?もしそうなら:

    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");
        }
    }

または、1つの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());
.....
}

2回呼び出すConsole.ReadLine(...)ので、2回押す必要がありますt。言うのは難しいですが、おそらくあなたは次のようなことをしたいと思っています:

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 に答える