C# “如何制作一个”;如果(变量=100 | |变量=200)“;等等更好?
我在Microsoft Visual Studio 2017中使用Windows窗体应用程序, 我有一个函数来显示一个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 ==
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);
}