有没有办法让int值成为多个值? 在这里你可以看到代码,我做一个迷你游戏作为概念的证明。 目前我有x发生在4号循环,y发生在9号循环。
有没有办法在其他循环上重复这些动作,而不会像这样大乱:i == 4 || i == 14 ||我== 18
我想问的是,是否可以只写i == a 然后有一个多个值。
如果你还没想到,我是C#的初学者,所以如果你能以一种易于理解的方式解释它,我会非常感激。 如果我写的内容有点难以理解,那么我很抱歉不是母语为英语的人,只要问你是否不确定我的意思。
for (int i = 0; i < 50; i++)
{
string input;
input = Console.ReadKey().Key.ToString();
Console.Clear();
if (input == "A") Animation.frame1();
else Animation.fall();
if (i == 4) Animation.blocklow2();
if (i == 9) Animation.blockhigh2();
input = Console.ReadKey().Key.ToString();
Console.Clear();
if (input == "W" && i == 4) Animation.blockjump();
if (input == "S" && i == 9) Animation.blockduck();
if (input == "D" && i != 4 && i != 9) Animation.frame2();
else if (input != "W" && i == 4) Animation.fall();
else if (input != "S" && i == 9) Animation.smack();
if (i == 3) Animation.blocklow();
if (i == 8) Animation.blockhigh();
}
答案 0 :(得分:4)
您可以if (new int[] { 4, 14, 18 }.Contains(i))
检查多个值。
答案 1 :(得分:1)
存储要检查的整数列表,然后使用.Contains
List<int> frame2ints = new List<int>{4,9};
if (input == "D" && !frame2ints.Contains(i)) Animation.frame2();
答案 2 :(得分:0)
在某些情况下,您可以执行按位测试,以查看您的数字中是否设置了某些位:
if ((x & 4) != 0)
{
// This case covers numbers
// 4, 5, 6, 7, 12, 13, 14, and many others...
}
您的问题的一般答案是否定的,只有使用有关您正在测试的值的其他知识然后使用该知识才有意义。
另一种选择是测试一个数字是否属于一个序列,就像HHLV在其他答案中所说的那样。
那么,你是如何得到价值观4,14和18的?