虽然(真正)问题,我做错了什么?

时间:2018-08-27 06:56:17

标签: c#

为什么当我第一次输入“赌博”时,只有if语句起作用?键入其他任何内容都没有用,它仍然增加了10个树林。为什么当我第一次键入其他内容时,只有else语句起作用?输入“赌博”是没有用的,将继续说“写”赌博“打树。 “ PS:变量,其int = woods;以及字符串赌博;

Console.WriteLine("You have {0} woods", woods);
Console.WriteLine("Write ''gamble'' to hit the tree");
gamble = Console.ReadLine();
bool loop = true;

while (loop)
{
    if (gamble.Contains("gamble"))
    {
        woods = woods + 10;
        Console.Clear();
    }
    else
    {
        Console.WriteLine("Write ''gamble'' to hit the tree");
    }

    Console.WriteLine("You have {0} woods", woods);
    Console.ReadLine();
}                      

5 个答案:

答案 0 :(得分:1)

如果我了解您的描述,您就忘记再次阅读gamble

   Console.WriteLine("You have {0} woods", woods);
   gamble = Console.ReadLine();
}    

答案 1 :(得分:1)

    gamble = Console.ReadLine();

您只能在开始时进行赌博。在循环中,它永远不会改变。因此,它会反复使用第一个值。

在循环的最后一行添加gamble =

答案 2 :(得分:0)

在while循环结束时,您正在做private void Form1_Load(object sender, EventArgs e) { this.comboBoxSubjectCName.DataSource = this.Student.TableClass; this.comboBoxSubjectCName.DisplayMember = TableColumn.ClassName;//Column name that will be the DisplayMember this.comboBoxSubjectCName.ValueMember = TableColumn.ClassID;//Column name that will be the ValueMember } ,但没有存储它。您需要Console.ReadLine()才能将扫描的字符串存储在“ gamble”变量中。

答案 3 :(得分:0)

因为循环始终为真。您应该在if和else语句之后将其更改为false ...

答案 4 :(得分:0)

无论控制台行中是否存在除“赌博”以外的其他内容,它都会添加10个木头,原因是您在返回的消息中写入了“赌博”。

select UpdateZone (cast(? as int),?) 是这里的问题。

您可以通过不在返回消息中写“赌博”一词来解决此问题,或者找到一种巧妙的方法来使其不在UILabel循环中运行。

例如,您可以使用main方法让它运行仅要运行一次的功能。

这样的事情。

else {Console.WriteLine("Write ''gamble'' to hit the tree");}

警告:如果写了“赌博”以外的内容,程序将退出。