阿姆斯特朗没有。程序(可能尚未启动局部变量z)

时间:2014-09-05 14:59:03

标签: java

import java.util.Scanner;

class test15{

public static void main(String ...NR){  

int sum=0;  

Scanner sc = new Scanner(System.in);

int x,y,z;

System.out.println("Enter the number");

int num = sc.nextInt(); 

num = z;

while(num!=0){


x = num%10;

sum = sum + x*x*x;

num = num/10;

}   


if(sum == z){

    System.out.println("no is armstrong");  

}

else{

    System.out.println("no is not armstrong");

}

}


}

//获取错误局部变量Z可能尚未初始化,那么如何使用户输入的变量等于另一个?我是java的新手。

3 个答案:

答案 0 :(得分:0)

局部变量(即方法中定义的变量)必须在访问它们的值之前初始化。

例如,您可以在定义z

时执行此操作

int z = 0;

答案 1 :(得分:0)

基本上LHS = RHS,RHS的值被分配给LHS。 在你的情况下,你有代码

 int z;
 num = z;

在这里你可以播种z未初始化。

我相信你想做

z=num;

这样你的数值就变成了z。

答案 2 :(得分:0)

由于默认值的概念仅应用于实例变量,因此在您的类中,变量z是一个局部变量,这意味着您需要在使用它之前对其进行初始化。

所以在这里int x,y,z; z尚未初始化为任何值,然后在此num = z;您尝试将z的值分配给num({{ {1}})从未被初始化为任何值,我认为您可能想要做的相反的方式意味着z在这种情况下,用户输入num将被分配给z。

在使用其他地方之前初始化局部变量,如

z=num

或者在你的情况下,这应该做的工作

int x =0;
int y =0;
int z =0;