Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/271.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# “如何制作一个”;如果(变量=100 | |变量=200)“;等等更好?_C# - Fatal编程技术网

C# “如何制作一个”;如果(变量=100 | |变量=200)“;等等更好?

C# “如何制作一个”;如果(变量=100 | |变量=200)“;等等更好?,c#,C#,我在Microsoft Visual Studio 2017中使用Windows窗体应用程序, 我有一个函数来显示一个Messagebox.show()并更新一个级别变量。代码非常难看 我怎么能做到这一点?它是无限的,而不是那么丑陋 void Level() //Levels. { if (count == 100 || count == 200 || count == 300 || count == 400 || count == 500 || count ==

我在Microsoft Visual Studio 2017中使用Windows窗体应用程序, 我有一个函数来显示一个
Messagebox.show()
并更新一个级别变量。代码非常难看

我怎么能做到这一点?它是无限的,而不是那么丑陋

    void Level() //Levels.
    {
        if (count == 100 || count == 200 || count == 300 || count == 400 || count == 500 || count == 600 || count == 700 || count == 800 || count == 900 || count == 1000 ||
            count == 1100 || count == 1200 || count == 1300 || count == 1400 || count == 1500 || count == 1600 || count == 1700 || count == 1800 || count == 1900 || count == 2000 ||
                count == 2100 || count == 2200 || count == 2300 || count == 2400 || count == 2500 || count == 2600 || count == 2700 || count == 2800 || count == 2900 || count == 3000 ||
            count == 3100 || count == 3200 || count == 3300 || count == 3400 || count == 3500 || count == 3600 || count == 3700 || count == 3800 || count == 3900 || count == 4000)
        {
            level = level + 1;
            MessageBox.Show("Congratulations, you ranked up to level " + level.ToString(), "Cookie Clicker 2.0");
            label2.Text = "Level: " + level.ToString();

        }
        else if (count >= 4000)
        {
                    MessageBox.Show("Congratulations! We have not fixed any more in this game.",  "Cookie Clicker 2.0", MessageBoxButtons.OK,
                    MessageBoxIcon.Exclamation,
                       MessageBoxDefaultButton.Button1);
        }
    }
您可以按如下方式使用C#:

void Level()
{
    if (count % 100 == 0 && count < 4000)
    {
        level = level + 1;
        MessageBox.Show("Congratulations, you ranked up to level " + level.ToString(), "Cookie Clicker 2.0");
        label2.Text = "Level: " + level.ToString();
    }
    else if (count >= 4000)
    {
        MessageBox.Show("Congratulations! We have not fixed any more in this game.",  "Cookie Clicker 2.0", MessageBoxButtons.OK,
        MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button1);
    }
}
void Level()
{
如果(计数%100==0&&count<4000)
{
级别=级别+1;
Show(“祝贺你,你的排名达到了”level.ToString(),“Cookie Clicker 2.0“);
label2.Text=“Level:+Level.ToString();
}
否则如果(计数>=4000)
{
Show(“祝贺你!我们在这个游戏中没有修复任何问题。”,“Cookie Clicker 2.0”,MessageBoxButtons.OK,
MessageBoxIcon.感叹号,MessageBoxDefaultButton.Button1);
}
}
编辑:根据评论,似乎计数可以达到96,99102。。下面是另一个解决方案(将下一个级别作为单独的变量):

private int\u nextLevel=100;
空层()
{
如果(计数>下一级计数<4000)
{
_下一级+=100;
级别=级别+1;
Show(“祝贺你,你的排名达到了”level.ToString(),“Cookie Clicker 2.0“);
label2.Text=“Level:+Level.ToString();
}
否则如果(计数>=4000)
{
Show(“祝贺你!我们在这个游戏中没有修复任何问题。”,“Cookie Clicker 2.0”,MessageBoxButtons.OK,
MessageBoxIcon.感叹号,MessageBoxDefaultButton.Button1);
}
}
添加

我不知道从何处获得“count”值,但您可以按如下操作,将此
列表

List<int> acceptedValues = new List<int>{ 100, 200, 300}; // add all the values you need

if (acceptedValues.Contains(count))
{
    level = level + 1;
    MessageBox.Show("Congratulations, you ranked up to level " + level.ToString(), "Cookie Clicker 2.0");
    label2.Text = "Level: " + level.ToString();

}
else if (count >= 4000)
{
     MessageBox.Show("Congratulations! We have not fixed any more in this game.",  "Cookie Clicker 2.0", MessageBoxButtons.OK,
     MessageBoxIcon.Exclamation,
     MessageBoxDefaultButton.Button1);
}
List acceptedValues=新列表{100200300};//添加所需的所有值
if(acceptedValues.Contains(计数))
{
级别=级别+1;
Show(“祝贺你,你的排名达到了”level.ToString(),“Cookie Clicker 2.0“);
label2.Text=“Level:+Level.ToString();
}
否则如果(计数>=4000)
{
Show(“祝贺你!我们在这个游戏中没有修复任何问题。”,“Cookie Clicker 2.0”,MessageBoxButtons.OK,
MessageBoxIcon.感叹号,
MessageBoxDefaultButton.Button1);
}

编辑:如果所有可能的值都可以被100整除,Risto的回答方式会更好,尽管我会先检查
count>=4000
,然后
count%100==0

用这些值填充一个集合,然后询问
count
是否在集合中。查看
HashSet
。将值存储在数组中,并检查数组包含的内容,而不是检查计数是否可被100整除?(count%100==0)谢谢,%运算符做什么?在本例中,%运算符回答问题:“当您将count除以数字100时,余数是多少?”。若结果为0,则计数可被100整除。上面的链接有更多信息。我添加了它并试用了它,但是。如果每次单击的值计数为3,它从99开始,并从100跳到102,则不更新级别变量。我正在做一个饼干点击游戏,所以我想你现在可以了解我的想法了。我如何解决这个问题?我更新了另一个适合这种情况的解决方案。如果有效,您可以将答案标记为已接受。嗯。现在,当我达到100时,不会收到通知,级别值也不会更新。小gif;我可以试着更准确地解释它。当我点击“大cookie”时,它会用“count”+“cookies”更新“count”变量,在这种情况下,“cookies”是1,所以0+1。当你点击大按钮到100时,它会将“level”变量更新1并显示一条消息,如果你点击200则会显示另一条消息,你明白吗?
using System.Collections.Generic;
List<int> acceptedValues = new List<int>{ 100, 200, 300}; // add all the values you need

if (acceptedValues.Contains(count))
{
    level = level + 1;
    MessageBox.Show("Congratulations, you ranked up to level " + level.ToString(), "Cookie Clicker 2.0");
    label2.Text = "Level: " + level.ToString();

}
else if (count >= 4000)
{
     MessageBox.Show("Congratulations! We have not fixed any more in this game.",  "Cookie Clicker 2.0", MessageBoxButtons.OK,
     MessageBoxIcon.Exclamation,
     MessageBoxDefaultButton.Button1);
}