需要帮助才能在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,
答案 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
。