2015-10-14 67 views
1

我正在寫一個控制檯程序,要求輸入姓名和年齡,然後確定您是否足夠長。我試圖用一個變量來確定該人可能着手:在當前的情況下名稱門不存在

Bool door = true; 

那我想問,如果他們想再次填滿它在誰被剝奪,因爲他們的年齡的人。

if (door == false){ 
    Console.WriteLine("Wilt u op nieuw uw leeftijd invullen?"); 
} 

但Visual Studio中給了我以下錯誤:

Error CS0103 The name 'door' does not exist in the current context ConsoleApplication1

下面是完整的代碼:

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

namespace ConsoleApplication1 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      Console.Write("Hallo, wie ben jij? "); 
      string Name = Convert.ToString (Console.ReadLine()); 
      Console.Write("Hallo " + Name + ", hoe oud ben jij? "); 
      int Age = Convert.ToInt32 (Console.ReadLine()); 
      Console.ReadLine(); 

      if (Age < 18) { 
       int remaining = 18 - Age; 
       Console.WriteLine("Helaas bent u nog geen achttien, U moet nog:  "+remaining+" Jaar wachten."); 
       Console.ReadLine(); 
      } else if (Age == 18) { 
       Console.WriteLine("U mag net door"); 
       bool door = true; 
       Console.ReadLine(); 
      } else { 
       Console.WriteLine("U bent door naar de volgende ronde"); 
       bool door = true; 
       Console.ReadLine(); 
      } 

      if (door == false) 
      { 
       Console.WriteLine("Wilt u op nieuw uw leeftijd invullen?"); 
      } 
     } 
    } 
} 
+2

門在if-else語句中定義;那麼它在該語句之外使用。在類的範圍內定義它(不在任何循環/ if語句中) –

+1

Welkom in de wereld van C#! –

回答

5

每對花括號{ ... }在C#中定義了範圍。這意味着在該地區宣佈的一切都在該地區。這意味着,當你這樣做:

{ 
    Console.WriteLine("U mag net door"); 
    bool door = true; 
    Console.ReadLine(); 
} 

其中door變量的生活,與封閉的大括號限制的區域,不存在其他任何地方。當您嘗試使用它之後,在if (door == false)中,在一個名爲door的變量不存在且從未存在的地方,編譯器基本上會告訴您這一點。

您需要事先聲明的變量,像

bool door = false; 
if (Age < 18){ 
    //.... 
} else { 
    Console.WriteLine("U bent door naar de volgende ronde"); 
    door = true; 
    Console.ReadLine(); 
} 

能夠用它在你的計劃。

+1

謝謝你的好解釋!很高興看到有這麼多人在這裏推動改進。 :) –

1

你的 「門」 變量在if語句的範圍內聲明。將它移出if語句並在main的頂部聲明。

1

您在else塊中聲明door變量。所以在你的if區塊,它超出了範圍。你可以做的是在兩個塊都可以訪問的範圍內聲明它。也就是說,直接在Main方法內部

1

因爲布爾門是在通過{}確定的不同範圍中創建的,所以它不在外部範圍中。將變量移出範圍,它應該可以正常工作。

相關問題