2017-06-05 54 views
1

我一直在黑客等級上嘗試此代碼,並且出現以下錯誤。<identifier>預計在HackerRank代碼

Solution.java:36: error: <identifier> expected 
    System.out.print(ans); 
       ^
Solution.java:36: error: <identifier> expected 
    System.out.print(ans); 
        ^
2 errors 

代碼:

import java.io.*; 
import java.util.*; 
import java.text.*; 
import java.math.*; 
import java.util.regex.*; 
public class Solution { 

public static void main(String[] args) { 
Scanner scan = new Scanner(System.in); 
    int n = scan.nextInt(); 
    scan.close(); 
    String ans=""; 

    // if 'n' is NOT evenly divisible by 2 (i.e.: n is odd) 
    if(n%2==1){ 
    ans = "Weird"; 
    } 

    else if (n%2==0)//even no 
     { 
     if(n>2 && n<=5) 
     ans="Not Wierd"; 
     } 

     if(n>6 && n<20) 
      { 
       ans="Wierd"; 
      } 
     else 
     { 
    ans="Not Wierd"; 
      } 


    } 
    System.out.print(ans); 
} 

什麼是我的錯?

+0

您好,歡迎計算器!在這裏,最好練習一些你認爲有幫助的答案,如果可以的話,就這樣標記答案。有沒有義務這樣做,但它確實幫助用戶上升通過等級,或者有時乾脆覺得有幫助:) –

+0

,否則我們將永遠不會再hahahahahahaha –

+0

幫助你,如果你正確地格式化你的代碼,這個錯誤的原因將對你變得明顯。 –

回答

0

移動你的System.out.print(ans);了一條線,使其}前:

System.out.print(ans); 
} 

因爲它現在站,您的System.out代碼是main()之外。

+0

謝謝! @ariefbayu – manali

0

變化

} 
    System.out.print(ans); 

System.out.print(ans); 
} 

如果你糾正你的縮進可能更容易被發現

+0

得到它!感謝@Scary Wombat – manali

0

您需要正確地縮進代碼。然後你就可以清楚地看到塊的結構。您的System.out以外的主要方法。剪下該線並將其粘貼在一個}中。

如果你看同樣的代碼一目瞭然發生了什麼,像下面你就會明白正確縮進:

public class B { 
    if(n%2==1){ 
     ans = "Weird"; 
    }else if (n%2==0){//even no 
     if(n>2 && n<=5) 
      ans="Not Wierd"; 
    } 

    if(n>6 && n<20){ 
     ans="Wierd"; 
    }else{ 
     ans="Not Wierd"; 
    } 

    System.out.println(ans); 
} 
0

變量ans不會在您嘗試打印範圍存在。

請做正確的縮進的代碼,而調試,以便更好地理解這個問題。

import java.io.*; 
import java.util.*; 
import java.text.*; 
import java.math.*; 
import java.util.regex.*; 
public class Solution { 

public static void main(String[] args) { 
    Scanner scan = new Scanner(System.in); 
    int n = scan.nextInt(); 
    scan.close(); 
    String ans = ""; 

    // if 'n' is NOT evenly divisible by 2 (i.e.: n is odd) 
    if (n % 2 == 1) { 
    ans = "Weird"; 
    } 
    else if (n % 2 == 0) //even no 
    { 
    if (n > 2 && n <= 5) 
    ans = "Not Wierd"; 
    } 

    if (n > 6 && n < 20) { 
    ans = "Wierd"; 
    } 
    else { 
    ans = "Not Wierd"; 
    } 
} 
System.out.print(ans); 
}