[英]Error: identifier expected in Java
我是Java的新手。 我學習了一些Java核心概念。 運行以下代碼時,出現標識符預期錯誤:
class Sekar {
public static int i,j,k;
i = 900;
static void max()
{
j = 100;
if(i>j)
{
k=i;
}
else {
k=j;
}
System.out.println("The maxmimum vale between"+i+"and"+j+"is :"+k);
}
public static void main(String[] args) {
max();
}
}
編譯代碼時,出現以下錯誤:
error: identifier expected
i = 900;
^
int i = 900
這樣將值設置為“ i”時再次聲明數據類型時,它可以工作。 為什么呢 Hava看看Java:期望的標識符 :
i = 900;
和其他聲明一樣。 您無法在任何地方編寫語句。 它必須在方法/構造函數主體中。 聲明中的初始化變量稱為定義 ,是該規則的例外。
http://docs.oracle.com/javase/tutorial/java/nutsandbolts/expressions.html
如果要初始化靜態變量,可以使用2種(合理的)方法:在聲明它的位置初始化變量:
class Sekar {
public static int i = 900, j,k;
static void max()
{
j = 100;
if(i>j)
{
k=i;
}
else {
k=j;
}
System.out.println("The maxmimum vale between"+i+"and"+j+"is :"+k);
}
public static void main(String[] args) {
max();
}
}
或在靜態構造函數中執行:
class Sekar {
public static int i, j,k;
static {
i = 900;
}
static void max()
{
j = 100;
if(i>j)
{
k=i;
}
else {
k=j;
}
System.out.println("The maxmimum vale between"+i+"and"+j+"is :"+k);
}
public static void main(String[] args) {
max();
}
}
另外,如果要定義常量 ,建議使用final關鍵字。
j可以轉換為局部變量 。
class Sekar {
public static final int I = 900;
static void max()
{
int k;
int j = 100;
if(I>j)
{
k=I;
}
else {
k=j;
}
System.out.println("The maxmimum vale between"+I+"and"+j+"is :"+k);
}
public static void main(String[] args) {
max();
}
}
您可能想做的是:
class Sekar {
public static int i=900,j=100,k;
static void max()
{
if(i>j)
{
k=i;
}
else {
k=j;
}
System.out.println("The maxmimum vale between"+i+"and"+j+"is :"+k);
}
public static void main(String[] args) {
max();
}
}
但是,在這種情況下,我不鼓勵您使用靜態字段。 我建議您為您的方法設置i
, j
和k
參數。 並在使用時為他們提供描述性名稱。
還要注意, k
沒有顯式初始化,因此默認情況下設置為0
,因此永遠不會到達else
子句。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.