带有IF语句c#的嵌套循环



试图解决一个简单的c#问题,我做到了,但我的老师希望我用嵌套循环而不是布尔值来解决。

问题:显示输入数字中可被3和7整除的所有数字。如果没有找到号码;找不到号码";。

我是如何用bool:解决的

Console.WriteLine("Put in a number: ");
int nummer = int.Parse(Console.ReadLine());
bool FoundLegitNumber = false;
for (int i = 1; i <= nummer; i++)
{ 
if (i % 3 == 0 && i % 7 == 0)
{
FoundLegitNumber = true;
Console.WriteLine($"The number {i} is evenly divisible by 3 and 7");
}
}
if (!FoundLegitNumber)
{
Console.WriteLine("Didnt find any number...");
}

我是如何尝试用for循环来解决它的:

Console.WriteLine("Put in a number: ");
int nummer = int.Parse(Console.ReadLine());
for (int i = 0; i <= nummer; i++)
{
for (int j = 0; i >= j; j++)
{
if (i % 3 == 0 && i % 7 == 0)
{ 
Console.WriteLine($"The number {i} is evenly divisible by 3 and 7");
}
else if (j == 0)
{
Console.WriteLine("Didnt find any number...");
break;
}
}
}

我知道,这没有任何意义,但我不知道如何解决它。我知道,如果(I%3==0&I%7==0(不是真的,我想给J+1。

如果你想要一个涉及嵌套for而不扭曲基本问题的方法,也许你可以添加这样的除法器数组:

int number = 21;
int[] dividers = new int[] { 3, 7 };
for (int i = 0; i <= number; i++)
{
bool matchAllDividers = true;
for (int j = 0; j < dividers.Length; j++)
{
if (i % dividers[j] != 0)
{
matchAllDividers = false;
break;
}
}
if (matchAllDividers)
{
Console.WriteLine("The number {0} is evenly divisible by all dividers".FormatWith(i));
}
else
{
Console.WriteLine("The number {0} is not evenly divisible by all dividers".FormatWith(i));
}
}

最新更新