2014-09-05 47 views
0
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。armstrong no。程序(局部变量z可能没有启动)

+0

错误说,这一切......你还没有初始化'ž ' – bhargavg 2014-09-05 15:00:50

+0

z = num not num = z – StackFlowed 2014-09-05 15:01:14

回答

0

由于默认值的概念仅适用于实例变量,所以在您的类中,变量z是一个局部变量,这意味着您在使用它之前需要初始化它。

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

或者使用别的地方像

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

或者在你的情况只是这应该做的工作

之前初始化局部变量
z = num; 
0

局部变量(即方法内定义的变量)必须在其值被访问前被初始化。

可以,例如,做到这一点,当你定义z

int z = 0;

0

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

int z; 
num = z; 

在这里,您可以播种Z为未初始化。

我相信你想做的事

z=num; 

这样的价值,你NUM进入ž。