在C#中循环很简单

时间:2013-03-25 16:27:36

标签: c#

我正在尝试使用Visual C#Express解决http://projecteuler.net/problem=1

我创建了一个Console Application并编写了以下代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Euler_1
{
    class Program
    {
        static void Main(string[] args)
        {
            int num = 0;
            int sum = 0;
            for (int i = 0; i <= 10; i++)
            {
                if (num / 3 == 0)
                    sum = sum + num;
                num++;
                System.Console.WriteLine(num);
            }

        }
    }
}

只是为了测试我是否可以获得任何输出。我不确定这是否是解决此问题的最佳方法。控制台窗口仅打开一秒钟然后消失。我该如何解决这个问题?

8 个答案:

答案 0 :(得分:3)

您可以使用Console.ReadKey()进行修复。通常,在发生这种情况的控制台应用程序中(虽然如果你可以帮助它我永远不推荐它...控制台往往是从现有的命令行运行,并且预计在完成后立即退出,返回到终端的上下文),你看到这样的事情:

Console.WriteLine("press any key to exit...");
Console.ReadKey();

答案 1 :(得分:2)

尝试

Console.ReadKey();

循环之后

答案 2 :(得分:2)

您也可以尝试使用ReadLine method

Console.ReadLine();

link:http://msdn.microsoft.com/fr-fr/library/system.console.readline.aspx

答案 3 :(得分:0)

您可以在最后一行放置一个断点,以便调试器停止,添加一个类似ReadLine的调用,以便需要用户输入,添加一个延迟(Sleep),以便Windows保持显示几秒钟或从命令提示符。

答案 4 :(得分:0)

操作太多

if (i / 3 == 0)
   sum+=i;

正如其他人所说,

 Console.ReadKey()

会让你看到结果。

答案 5 :(得分:0)

问题是应用程序在循环结束后终止(控制台关闭)。要使控制台保持打开状态,您可以执行以下操作之一:

  1. 如果您通过按 ctrl + F5 而不是 F5 启动没有调试器的应用程序,您将看到{{ 1}}就在程序退出之前。

  2. 对我来说,最好的方法使用调试器是将断点( F9 )添加到Press any key to continue . . .的结束括号中方法

  3. 添加额外的代码来帮助您调试程序对我来说是一个坏习惯。

答案 6 :(得分:0)

Ctrl + F5将为您留下Press any key to continue...这将阻止控制台自动关闭。

或者,您可以转到工具栏中的Debug,然后点击Start Without Debugging

此解决方案将阻止向项目添加代码。

答案 7 :(得分:0)

这里是干净的代码,包含其他人提到的所有更改。主要是模数(参见%)和Console.ReadKey

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Euler
{
    class Program
    {
        static void Main(string[] args)
        {
            const int max = 10;
            int sum = 0;

            for (int i = 0; i < max; i++)
            {
                if (i % 3 == 0 || i % 5 == 0)
                    sum += i;
            }

            Console.WriteLine("The sum of all multiples of 3 and 5 from 0 to {0} is: {1}", max, sum);

            Console.WriteLine("Press any key to exit.");
            Console.ReadKey();
        }
    }
}