for 循环不会执行 C#
本文关键字:执行 循环 for | 更新日期: 2023-09-27 17:57:19
我正在制作一个程序,该程序将多次骰子。我制作了一种名为"掷骰子"的方法。该方法一直有效,直到 for 循环。我在控制台中键入"roll"后,它返回到 main 方法,我不知道为什么它不会在 for 循环中执行脚本。我已经标记了代码停止工作的地方。任何帮助将不胜感激,谢谢!
using System;
using System.Collections.Generic;
namespace Dice Roller
{
class Program
{
public static void Main(string[] args)
{
int nos = 6;
int nod = 1;
int nor = 1;
string OP;
int x = 1;
while (x == 1)
{
Console.WriteLine("Random Dice Macine");
Console.WriteLine("Type 'edit' To Edit Dice Settings");
Console.WriteLine("Type 'clear' To Clear The Screan");
Console.WriteLine("Type 'exit' To Close The Aplication");
Console.WriteLine("Type 'roll' to Roll The Dice");
Console.Write("-> ");
OP = Console.ReadLine();
if (OP == "exit")
{
Environment.Exit(0);
}
else if (OP == "edit")
{
Console.Clear();
Console.WriteLine("Number Of Sides On The Dice");
Console.Write("->");
nos = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("Number Of Dice");
Console.Write("->");
nod = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("Number Of Roles");
Console.Write("->");
nor = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("Setup Compleat! Press Space To Continue.");
Console.ReadKey();
Console.Clear();
}
else if (OP == "clear")
{
Console.Clear();
}
else if (OP == "roll")
{
RollDice(nor, nos, nod);
}
}
}
public static void RollDice(int nor, int nos, int nod)
{ //Code Works Here
Random gen = new Random();
List<int> numbers = new List<int>();
for (int n = 1; n < nod; n++)
{
for (int i = 1; i < nor; i++)
{ //But Not Here
numbers.Add(gen.Next(1, nos));
}
foreach (int element in numbers)
{
Console.Write(element + ", ");
}
numbers.Clear();
}
}
}
}
在 for 循环中,计数器应该从 0 开始,而不是从 1 开始。在您的情况下,nor
和 nod
等于 1。这就是为什么循环永远不会被执行的原因。
我唯一能看到的是,当程序到达for循环时,如果nod或nor是1,则已经满足结束循环的条件。在 ebd 条件下改用 '<='。
在线
for (int n = 1; n < nod; n++)
点头为 1,n 个点头检查<为循环终止。设置><= 点头。