C# 用C中的另一条等效线替换打断线

C# 用C中的另一条等效线替换打断线,c#,C#,我需要更换断路器;在不使用goto的情况下使用另一条等效线路,可能的解决方案是什么 static void Main(string[] args) { int Max = 100; for (int i = 0; i < Max; i++) { Console.Writeline(i); if (i == 50) break; } Console.ReadLine(); } 将i设置为最大

我需要更换断路器;在不使用goto的情况下使用另一条等效线路,可能的解决方案是什么

static void Main(string[] args)
{
    int Max = 100;

    for (int i = 0; i < Max; i++)
    {
       Console.Writeline(i);

        if (i == 50)
            break;
    }

    Console.ReadLine();
}
将i设置为最大值

这将停止循环运行。它与break不完全相同。因为它将在if语句之后执行代码,所以您可能需要使用continue跳过它。

将i设置为Max


这将停止循环运行。它与break不完全相同。因为它将在if语句之后执行代码,所以您可能需要使用continue来跳过它。

因为您将break设置为50,这基本上是仅使用您发布的代码可能实现的最大值,为什么不将Max设置为51而不是100?结果是一样的

既然你在50处中断,这基本上是仅使用你发布的代码就可以实现的最大值,为什么不将Max设置为51而不是100?结果是一样的

我真的很喜欢这个愚蠢的面试问题:这有效吗

static void Main(string[] args)
{
    int Max = 100;

    for (int i = 0; i < Max; i++)
    {

       if(i >= 51)
          continue;

        Console.Writeline(i);

    }
    Console.ReadLine();
}

我真的很喜欢这个愚蠢的面试问题:这有效吗

static void Main(string[] args)
{
    int Max = 100;

    for (int i = 0; i < Max; i++)
    {

       if(i >= 51)
          continue;

        Console.Writeline(i);

    }
    Console.ReadLine();
}
说明:在for循环中操纵循环变量i是完全合法的。 在循环结束时,执行for chack i 事实上,这两者是等价的:

for(int i=0; i < 3; i++)
{
    DoSomething(i);
}
将由编译器转换为:

说明:在for循环中操纵循环变量i是完全合法的。 在循环结束时,执行for chack i 事实上,这两者是等价的:

for(int i=0; i < 3; i++)
{
    DoSomething(i);
}
将由编译器转换为:


如果您不必保留“如果”声明:

static void Main(string[] args)
{
    int Max = 100;

    for (int i = 0; i <= 50; i++) // stop when i > 50 
    {
       Console.WriteLine(i);
    }

    Console.ReadLine();
}


如果您不必保留“如果”声明:

static void Main(string[] args)
{
    int Max = 100;

    for (int i = 0; i <= 50; i++) // stop when i > 50 
    {
       Console.WriteLine(i);
    }

    Console.ReadLine();
}

这也应该起作用



这也应该起作用

你为什么需要它?这是一个面试问题:很好的面试问题,它会发现你是否理解了;;拒绝这份工作。在愚蠢的面试问题之后,会有愚蠢的组织和任务。也许愚蠢的薪水:你为什么需要这个?这是一个面试问题:很好的面试问题,它会发现你是否理解;;拒绝这份工作。在愚蠢的面试问题之后,会有愚蠢的组织和任务。也许是愚蠢的薪水:不,事实上,这不起作用。这将只打印50次,并一直运行到Max。是的,我看到了:现在它被修复了现在它工作了,但它是坏的:它将使用CPU在I++中循环50次-这个词存在吗?@DrKoch,我知道,而且;这样做的成本约为0。不管问题是什么,都很有趣:不,事实上,这不起作用。这将只打印50次,并一直运行到Max。是的,我看到了:现在它被修复了现在它工作了,但它是坏的:它将使用CPU在I++中循环50次-这个词存在吗?@DrKoch,我知道,而且;这样做的成本约为0。不管这个问题有多有趣:如果这是在面试中问我的,我会写下这样的话:我真的被这样的问题烦透了!:+1.如果他们选择添加它,他们有一个理由。如果这是在采访中问我的,我会写下这样的话:我真的被这样的问题烦透了!:+1.如果他们选择添加它,他们有一个理由。
static void Main(string[] args)
{
    int Max = 50;

    for (int i = 0; i <= Max; i++)  // stop when i > Max
    {
       Console.WriteLine(i);
    }

    Console.ReadLine();
}
 if (i == 50)
   return;