我需要按 t 两次才能获得任何输出;否则程序直接进入else条件或给出异常处理程序错误。我在这做错了什么?
你们可以看到有两个类twotable
和其他program
包含主要方法。我试图使用twotable
类的invoke方法获取输出。
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");
}
}
}
}
}
答案 0 :(得分:1)
您正在从控制台阅读两次。
而不是
char t = Convert.ToChar(Console.ReadLine());
if (c == t)
你需要
if (c == 't')
答案 1 :(得分: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");
}
}
答案 2 :(得分:0)
我认为你的问题就在这里 - char c
。您将char c
与char t
两行都要求用户输入。
char c = Convert.ToChar(Console.ReadLine());
答案 3 :(得分:0)
代码有点乱,但即使在这个代码
上也是如此char c = Convert.ToChar(Console.ReadLine());
...
{
char t = Convert.ToChar(Console.ReadLine());
.....
}
你拨打Console.ReadLine(...)
2次,所以你需要按t
2次。
很难说,但是可能你想做的事情如下:
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
}
.....
}
答案 4 :(得分:0)
我需要改为使用Console.ReadKey
,并测试c == 't'
:
获取用户按下的下一个字符或功能键。
和您的代码如下:
var cki = Console.ReadKey();
if (cki.KeyChar == 't')
{
...
}