簡體   English   中英

sb無法解析為變量

[英]sb cannot be resolved to a variable

我嘗試了這段代碼,該代碼適用於其他人,但不適用於我:

//import java.lang.*;


public class Main {

    public static void main(String[] args) {
        String[][] states = new String[3][2];   
        states[0][0]="california";
        states[0][1]="scremanto";
        states[1][0]="oregan";
        states[1][1]="salem";
        states[2][0]="newyork";
        states[2][1]="chicago";

        for (int i = 0; i < states.length; i++) {
            StringBuilder sb = new StringBuilder();
            for (int j = 0; j < states[i].length; j++) {
                sb.append(states[i][j]);
            }
        }
        System.out.println(sb);
    }
}

我得到的錯誤是:

線程“主”中的異常java.lang.Error:未解決的編譯問題:sb無法解析為變量

在Main.main(Main.java:23)

注意:我使用Eclipse,也許很有意義。

您在i定義sb並嘗試在其外部引用它,如您所見,將無法使用。 似乎您打算在循環外定義它:

StringBuilder sb = new StringBuilder();
for (int i = 0; i < states.length; i++) {
    for (int j = 0; j < states[i].length; j++) {
        sb.append(states[i][j]);
    }
}

System.out.println(sb);

其他人沒有這個問題

您可能忽略了一些結束類,方法和外部for循環的括號...

根據要打印的內容,必須在“作用域”內使用變量。

for (int i = 0; i < states.length; i++) {
    // locally scoped to the for loop 
    StringBuilder sb = new StringBuilder();
    for (int j = 0; j < states[i].length; j++) {
        sb.append(states[i][j]);
    }
    System.out.println(sb); // will work here 
}

System.out.println(sb); // but not here 

要么

StringBuilder sb = new StringBuilder();
for (int i = 0; i < states.length; i++) {
    for (int j = 0; j < states[i].length; j++) {
        sb.append(states[i][j]);
    }
    System.out.println(sb); // will still work here 
}

System.out.println(sb); // and now works here 

注意:您要立即將字符串彼此追加,而無需換行符。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM