[英]Using variables declared in a loop or declaring them outside the loop
我是Java和程序設計的初學者,因此遇到了問題。
int[][]table = new int[numberOfShortTables][legnthOfShortTable]
for(int i = 0; i < numberOfShortTables; i++) {
char[]shortTable = sc.nextLine().toCharArray();
for(int k = 0;k<legnthOfShortTable;k++){
table[i][k]=shortTable[k];
}
}
稍后在代碼中,我需要同時使用table[][]
和shortTable[]
。
我的問題是:是否可以以某種方式在循環內聲明變量,使其在循環外可用?
如果這不可能,我想知道如何在循環外聲明shortTable[]
並使用sc.nextLine().toCharArray();
在里面。
變量的作用域在聲明它的代碼塊內部,所以不,您不能在循環內聲明變量,然后在外部使用。
要直接回答您的問題,您需要做的就是首先使用char[]shortTable;
在循環外聲明var char[]shortTable;
或類似的東西,然后使用shortTable = ...
將其分配給循環。 這只是普通的變量作用域,循環沒有什么特別的。
您可以使用循環變量本身執行相同的操作。 int i;
幾行,然后for (i = 0....
嗨,看來您需要進一步了解一下示波器。
要以現在的方式回答您的問題,您將無法在for循環之后使用char [] shortTable,因此只需將其懸停在for循環上方,便可以使用它。 如果您還需要在其他方法中使用它,請參閱下面的更多信息。 (注意,如果您是初學者,請盡量避免使用靜態功能,如果您不理解其中的含義,將給您帶來無盡的頭痛)100%
簡而言之,您會獲得3種類別的范圍
在類級別定義變量時,該變量將可用於該類中的所有方法。
當您在方法中定義變量時,該方法內的所有循環/條件檢查都可以訪問該變量,即for,while和if語句內部。
當在for,while和if語句中定義變量時,只能在該循環內訪問該變量(將其視為方法內部的方法,並且該變量僅可用於定義該方法的方法。)
希望對理解范圍有所幫助。
我的問題是:是否可以以某種方式在循環內聲明變量,使其在循環外可用?
不,不可能。
如果這不可能,我想知道如何在循環外聲明shortTable []並使用sc.nextLine()。toCharArray();。 在里面。
如果您打算在循環外使用shortTable [],則不必在循環內聲明它。 只需在循環外聲明即可。 這樣做還允許您在循環中使用它。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.