大家好我是java的新手我完成了我的家庭工作,我宣布全局变量,但我的变量正在改变。
计划:
main()
{
public static final double j =20;
public static final double l =5;
if (l=5)
{
for (; j<=50 ; j+=2)
{
System.out.printf("value of j is %d\n",j);
}
for (; j>=4; j-=2) // i want here the value j to be 20 ...
{
System.out.printf("value of decrement is %d\n",j);
}
}
}
当我再次因为循环再次j = 20而工作时... ...我希望j从20开始
答案 0 :(得分:4)
首先,JAVA中没有任何名为全局变量的内容。 另外,代码中有很多编译错误: 我会列出一些:
缺少main()
函数的返回类型。
void main()
{
//code here
}
静态和公共修饰符不适用于局部变量(方法变量)
public static final double j =20; // this is wrong inside a method.
原因:在方法变量内部有本地范围。方法变量没有公共/私有范围。
所以它应该是:
final double j =20; //final means 'j' behaves as a constant
如果出现以下情况,您正尝试将5分配给l:
if (l=5)
//它将无法编译,因为如果表达式应该是布尔值,则第一个l将变为5并且在内部。
它应该是if(l==5)
。
for (; j<=50 ; j+=2)
将无法编译,因为j被声明为最终变量。
修复可以是:for (int jNew=0;jNew<=50;jNew++)
所以整体代码可以是:
void main()
{
final double j =20;
final double l =5;
if (l==5)
{
for (int j3=0; j3<=50 ; j3+=2)
{
System.out.println(j);
}
for (int j4=0; j4>=4; j4-=2) // i want here the value j to be 20 ...
{
System.out.println(j);
}
}
}
浏览Java here的基础知识。
答案 1 :(得分:1)
您可以使用循环本身简单地声明变量
for(j=20; j>=4; j-=2) // i want here the value j to be 20 ...
{
System.out.printf("value of decrement is %d\n",j);
}
答案 2 :(得分:0)
不是问题本身,但请记住,在Java中,main方法应该像这样声明:
public static void main(String[] args) { ... }
原因可以在这里找到: Why is the Java main method static?
答案 3 :(得分:0)
j获得意外值(52)的原因是语句j+=2
。
在每次迭代时,这将使用递增的值覆盖j的值。
在循环的几次迭代之后,j的值变为52,这导致循环退出,因为条件j<=50
不满足。
因此,在第二个循环开始之前,您需要使用值20重新初始化j。
注意:
如果你想要我和我j为public static,将它们声明在方法之外但在类中。
由于您不需要小数,请使用int
代替double
。