我正在构建一个c#hangman游戏,我正在寻找从if语句到另一个语句的一些信息。我对编程很陌生,所以如果这是一种愚蠢的方式,我很抱歉,如果有更好的方法,我真的很感激输入。
无论如何,这是代码:
if (menyalternativ == "1")
{
//Här får spelare lägga till fem egna ord utöver det hårdkodade ordet "projektarbete"
Console.WriteLine("\n\tLägg till 5 ord");
Random rng = new Random();
string[] ordlista = new string[5];
ordlista[0] = Console.ReadLine();
ordlista[1] = Console.ReadLine();
ordlista[2] = Console.ReadLine();
ordlista[3] = Console.ReadLine();
ordlista[4] = Console.ReadLine();
int index = rng.Next(5);
我想将ordlista [index]数据用于以后的语句中:
else if (menyalternativ == "3")
{
string hemligtord = "projektarbete"; //This I would like to be the random word from earlier.
char[] gissatord = new char[hemligtord.Length];
char gissa;
bool rättord = false;
Kontroll kontroll = new Kontroll();
for (int i = 0; i < gissatord.Length; i++)
{
gissatord[i] = '-';
}
非常感谢任何和所有帮助!
答案 0 :(得分:1)
ordlista
数组是声明它的块的本地数组(即声明点之后的同一花括号{...}
内的语句)。
如果需要在另一个代码块中使用它,则必须在两个代码块都可见的范围内声明它。但是,在这种情况下,您可能会遇到逻辑错误,因为在处理else if
块之后永远不会输入if
,除非整个if
链 - {{1} } s被包含在一个循环中。
如果在else if
语句之外有一个循环,并且您希望使用if
在迭代之间传递数据,则需要在循环之外声明变量。否则,它将在每次迭代中重新初始化,从而失去了首先使用它的目的。
答案 1 :(得分:0)
使变量范围成为全局。