2014-09-05 41 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進入ž。