2013-03-24 67 views
2

我是C#的新手,我試圖從一開始就達到MAX的價值,所以我可以在外面使用它,但是我不能......任何人都有一些想法!提前致謝從外部訪問while循環的變量(C#)?

while (Condition) 
{  
    Double MAX = somecode..... 
         ..... 
} 

Console.WriteLine("The OPTIMAL Value : " + MAX); 
+2

while循環之外創建它。有沒有必要在while循環內啓動它?如果不是,在 – Savlon 2013-03-24 00:07:24

+2

之外啓動它只是一些術語。 「從外部(C#)」被稱爲「來自外部作用域」外部作用域{內部作用域}外部作用域可以訪問內部作用域而不是相反。 – 2013-03-24 00:10:07

+1

woops,ofc我不得不擰它。它是:「內部範圍可以訪問外部範圍,但不能反過來」。這意味着內部作用域可以使用在外部作用域中聲明的變量,但外部作用域不能訪問在內部作用域中聲明的變量 – 2013-03-24 00:20:15

回答

5

在啓動while循環之前聲明MAX。你擁有它的方式只能在這段時間內訪問。

Double MAX = 0; 
while (Condition) 
      {  

       MAX = somecode..... 
             ..... 
      } 

      Console.WriteLine("The OPTIMAL Value : " + MAX); 
+1

如果我想在while循環中更改MAX的值,那麼該更改將不會應用於該值! – Jimey1000 2013-03-24 00:13:46

+0

不太確定你的意思。如果在while循環中更改MAX的值,然後在循環之後引用它,那麼您在while中設置的值在外部也是有效的,只要您聲明的值是在輸入while之前。 – 2013-03-24 00:18:03

+3

請記住聲明*和*爲其設置一個值。如果你只是做'雙最大;'你仍然會得到'使用未分配的本地變量'錯誤。 (對不起,如果這是顯而易見的,但我有這個問題) – Parziphal 2015-07-17 14:24:43

2

您必須聲明變量BEFORE循環。

Double MAX; 
while (Condition) 
{ 
    MAX = somecode.... 
} 
Console.WriteLine("The OPTIMAL Value : " + MAX); 
0

聲明MAX作爲循環的變量外,例如改變變量名也不要使用保留字作爲變量名

var dMax = default(double);//this is equivalent to writing Double dMax = 0 when debugginb it will give you this value 0.0 

while (Condition) 
{  
    dMax = somecode..... 
} 
Console.WriteLine("The OPTIMAL Value : " + dMax); 
1

這似乎根本問題是理解範圍是如何工作的。谷歌搜索「C#範圍如何工作」(或類似)可能會有幫助。

我發現一個很簡單,容易理解:http://www.codecandle.com/Articles/191/Csharp/Variables/Variable-scope/codedetail.aspx

所以許多其他人所說的,你需要聲明你的變量你內心的範圍之內,以有機會獲得改變。

一些僞代碼

// declare variable; 
{ 
    // change variable; 
} 
// use changed variable 
+0

先生我想添加我的數據到另一個類(頁)中的數據在while數據。你可以給我任何想法嗎?[My While Loop](https://pastebin.com/VgiNnhbt)非常感謝你 – tpbafk 2017-11-16 07:48:27