我正在尝试创建7个BOOM游戏。如果您不了解规则,每个人都会轮流说出下一个数字,但是如果该数字可以除以7或包含7,则应该改为BOOM。因此,在我的版本中,您插入一个数字,程序将显示该点的所有数字。
这是我的问题,我成功实现了第一部分,但是第二部分却遇到了问题。这是我到目前为止所拥有的:
class Program
{
static void Main(string[] args)
{
int num1 = int.Parse(Console.ReadLine());
int num2 = 0;
bool boolean;
while (num1>num2)
{
num2++;
if (num2%7 == 0)
{
Console.Write("BOOM, ");
}
else
{
Console.Write(num2 + ", ");
}
}
}
}
答案 0 :(得分:1)
只需将您的验证更改为:
if (num2%7 == 0 || num2.ToString().IndexOf('7') != -1)
{
// (..)
}
IndexOf
函数查找并返回子字符串在字符串中的位置。如果找不到,则返回-1。
@Dimitry指出,另一种选择是
if (num2%7 == 0 || num2.ToString().Contains('7'))
{
// (..)
}
这使用扩展方法Contains
,如果子字符串存在于字符串中,则返回true或false。
答案 1 :(得分:0)
public static void Main()
{
Console.Write("Please enter a number: ");
int number = int.Parse(Console.ReadLine());
// validate number here....
for (int i = 1; i <= number; i++)
{
string value = IsMultipleOrContains7(i) ? "BOOM" : i.ToString();
Console.WriteLine(value);
}
Console.WriteLine("Press any key to continue...");
Console.ReadKey();
}
public static bool IsMultipleOrContains7(int number)
{
if (number % 7 == 0)
{
return true;
}
return number.ToString().Contains("7");
}