C#打印每三个数字!

时间:2011-02-03 13:32:32

标签: c#

需要帮助才能在C#控制台应用程序中执行输出。

我有一个最大数量

int maxNr = 10;
int myValue = 1;

public void myMethod(){
int choice = int.Parse(Console.ReadLine());  // only 1 or 2 accepted.

//Only choice = 1 in displayed here.
if(choice == 1){
   while(myValue <= maxNr){
     Console.WriteLine(myValue);
     myValue = myValue + 3;
   }
}
}

预期产量: 1,4,7,10 下次调用该函数时,输出应为: 3,6,9 2,5,8,

7 个答案:

答案 0 :(得分:2)

myValue在第一次调用后停留在13,所以代码第二次没有进入循环

答案 1 :(得分:2)

在while循环之前添加:

if (myValue >= 10)
    myValue -= 10;

修改:

1.如果我理解正确,预期输出为:

1st call 1, 4, 7, 10.
2nd call: 3, 6, 9.
3rd call 2, 5, 8.

2.如某些人所建议的那样,您应该使用for循环而不是while循环:

if (myValue >= maxNr)
    myValue -= maxNr;

for (; myValue <= maxNr; myValue += 3)
{
    Console.WriteLine(myValue);
}

答案 2 :(得分:1)

for (i=0; i<n; i+=3)不适合你吗?

答案 3 :(得分:1)

为什么不直接使用它?

for (int i = n; i <= maxNr; i = i+3) {
    Console.WriteLine(i);
}

答案 4 :(得分:1)

myValue未在本地定义,因此在再次调用方法时需要将其设置为0,否则它仍为10并且您不进入循环。

答案 5 :(得分:1)

public void myMethod(){
int choice = int.Parse(Console.ReadLine());  // only 1 or 2 accepted.

int maxNr = 10;
int myValue = choice;

//Only choice = 1 in displayed here.
if(choice == 1){
   while(myValue <= maxNr){
     Console.WriteLine(myValue);
     myValue = myValue + 3;
   }
}
}

每次都重置您的起始值。

答案 6 :(得分:1)

您需要将myValue存储在临时变量中并在退出方法之前进行更新。根据我的要求,实现输出的代码如下所示,

static int maxNr = 10;
static int myValue = 1;

private static void Test()
{
    int lastValue = myValue;
    int choice = int.Parse(Console.ReadLine());  // only 1 or 2 accepted.

    //Only choice = 1 in displayed here.
    if (choice == 1)
    {
        while (myValue <= maxNr)
        {
            Console.WriteLine(myValue);
            myValue = myValue + 3;
        }
    }

    if (lastValue == 1)
    {
        myValue = lastValue + 3 - 1;
    }
    else
    {
        myValue = lastValue - 1;
    }
}


方法调用


static void Main(string[] args)
{
    Test();
    Test();
    Test();

Console.ReadLine();

Console.ReadLine();


输出
}
1
4
7

10
3
6

9
2
5

请注意,用户需要在每次函数调用时输入值8