原谅我,我是Java的初学者。在作业中,我必须创建一个程序,使用for循环打印一个32到98的温度表,以及转换为摄氏和开尔文。我不断收到错误“非静态变量x无法从静态上下文中引用”。问题是,我将x修改为DecimalFormat为x.format,并尝试将其应用于转换为两位小数。它将x识别为变量而不是函数的名称。这是我的代码:
public static void main(String args[]){
int i;
for(i = 32; i <= 98; i++){
System.out.println((i)+"F"+(x.format(i-32)*(5/9))+"C"+(x.format(i-32)*(5/9)+273.15))+"K");
}
}
}
答案 0 :(得分:0)
在您的班级中,您有一个非静态的成员变量x
。当您在静态的主类中使用它时,抛出异常。
第一种方式:
所以您需要做的是将x
的修饰符更改为静态,如下所示:
static x; // with your modifiers
然后您可以毫无困难地在主方法中使用它。
第二种方式:
如果这是一个相对较大的项目(或媒介),您可能需要考虑使用另一个函数并从主循环调用该函数,以避免必须处理所有这些静态的东西。方法如下:
public static void main(String[] args){
YOUR_CLASS_NAME c = new YOUR_CLASS_NAME();
c.startLogic();
}
public void startLogic(){
System.out.println((i)+"F"+(x.format(i-32)*(5/9))+"C"+(x.format(i-32)*(5/9)+273.15))+"K");
}
请务必将YOUR_CLASS_NAME
更改为您的班级名称(duh)。