2016-11-22 36 views
-3

做一些練習考題,並且它說:如何解決這個非編譯方法?

承擔聲明String pattern = getPattern();。解釋方法getPattern()中是否有流。你將如何解決它?

下面的代碼:

public static String getPattern() { 
    Scanner inPattern = new Scanner(System.in); 
    String pattern = " "; 
    boolean valid = false; 
    int i = 0; 
    while(!valid){ 
    System.out.println("please enter a valid pattern with X or x"); 
    pattern = inPattern.next(); 
if (! (pattern.charAt(i) == 'X' || pattern.charAt(i) == 'x' 
    || pattern.charAt(i) == 'r')) 
    System.out.println("You have entered an invalid pattern"); 
else if ((i + 1) == pattern.length()) valid = true; 
}; 
inPattern.close(); 
return pattern; 
} 

我真的不知道我會如何解決這個問題?顯然這是一個更大的代碼一小部分,因爲這不包括主要方法,親自讓它看起來有點困難。

我真的不確定這裏要改變什麼。我已經觀看了7個多小時的YouTube視頻,試圖理解這些東西或者做這個問題,但我真的無法弄清楚。任何人都可以提供一個很好的例子嗎?

+0

「非編譯方法?」 - 你有錯誤信息嗎?將其添加到您的帖子。 – bradimus

+0

**解釋方法getPattern()中是否有任何流。你將如何解決它?**這是否真的是問題?這是無稽之談,因爲它不是一個完整的句子。另外,當發佈這樣的問題時,您應該發佈編譯器錯誤。他們會告訴你爲什麼不編譯。 –

+0

'流'?你的意思是'缺陷'? – EJP

回答

0

Okey,所以第一件事就是第一件事。您收到的代碼是您運行所需的全部代碼,而不是「更大的程序」的一部分。它告訴你假設它被這樣調用:

String pattern = getPattern(); 

所以當從main方法調用方法「getPattern」時會發生什麼?系統會提示您輸入「有效」字符,如果該字符有效,該方法返回該字符。

這個問題本身是奇怪的設計。但看着代碼,我猜他們釣魚的是你被告知輸入字符'x'或'X'。但在代碼中另一個有效的字符是'r'。所以要麼他們要你改變給用戶的文本,要麼刪除'r',因爲我的猜測是有效的字符。