2016-07-31 87 views
0

我想制作一个计算器,其中有许多选项可以做,但我在尝试使输入连续时出现一些问题。 帮我下面给出代码。该错误显示,“可变的输入可能没有被初始化,虽然我已经初始化,它有一个看看:高级计算器java脚本问题

import java.util.*; 
class Calculator 
{ 
public static void main(String Args[]) 
{ 
int a,func,input;double digit; 
System.out.println("THIS IS HOW CALCULATOR WORKS"); 
do 
{ 
System.out.println("\n\n\n1. Add\n2. Subtract\n3. Divide\n4. Multiply\n5.  Square\n6. Square root\n7. Cube\n8. Cube root\n9. Continue\n10. Exit"); 
System.out.print("\nEnter the serial no. of the operation you would like to perform : "); 
Scanner sc=new Scanner(System.in); 
a=sc.nextInt(); 
if(a==1) 
{ 
System.out.println("Enter the number you want to add"); 
input=sc.nextInt(); 
System.out.println("Enter number to be added"); 
func=sc.nextInt(); 
digit= input+func; 
System.out.println("Final Answer:"+digit); 
} 
if(a==2) 
{ 
System.out.println("Enter the number you want to subtract"); 
input=sc.nextInt(); 
System.out.println("Enter number to be subtracted"); 
func=sc.nextInt(); 
digit= input-func; 
System.out.println("Final Answer:"+digit); 
} 
if(a==3) 
{ 
System.out.println("Enter the number you want to divide"); 
input=sc.nextInt(); 
System.out.println("Enter number to be divide"); 
func=sc.nextInt(); 
digit= input/func; 
System.out.println("Final Answer:"+digit); 
} 
if(a==4) 
{ 
System.out.println("Enter the number you want to multiply"); 
input=sc.nextInt(); 
System.out.println("Enter number to be multiplied"); 
func=sc.nextInt(); 
digit= input*func; 
System.out.println("Final Answer:"+digit); 
} 
if(a==5) 
{ 
System.out.println("Enter the number you want to square"); 
input=sc.nextInt(); 
digit= Math.pow(input,2); 
System.out.println("Final Answer:"+digit); 
} 
if(a==6) 
{ 
System.out.println("Enter the number you want to square root"); 
input=sc.nextInt(); 
digit=Math.sqrt(input); 
System.out.println("Final Answer:"+digit); 
} 
if(a==7) 
{ 
System.out.println("Enter the number you want to cube"); 
input=sc.nextInt(); 
digit= Math.pow(input,3); 
System.out.println("Final Answer:"+digit); 
} 
if(a==8) 
{ 
System.out.println("Enter the number you want to cube root"); 
input=sc.nextInt(); 
digit= Math.cbrt(input); 
System.out.println("Final Answer:"+digit); 
} 
if(a==9) 
{ 
System.out.println("\n\n\n1. Add\n2. Subtract\n3. Divide\n4. Multiply\n5. Square\n6. Square root\n7. Cube\n8. Cube root\n9. Exit"); 
System.out.print("\nEnter the serial no. of the operation you would like to perform : "); 
int double digit; 
int a=sc.nextInt(); 
if(a==1) 
{ 
System.out.println("Enter the number you want to add"); 
input=sc.nextInt(); 
System.out.println("Enter number to be added"); 
func=sc.nextInt(); 
digit= input+func; 
System.out.println("Final Answer:"+digit); 
} 
if(a==2) 
{ 
System.out.println("Enter number to be subtracted"); 
func=sc.nextInt(); 
digit= input-func; 
System.out.println("Final Answer:"+digit); 
} 
if(a==3) 
{ 
System.out.println("Enter number to be divide"); 
func=sc.nextInt(); 
digit= input/func; 
System.out.println("Final Answer:"+digit); 
} 
if(a==4) 
{ 
System.out.println("Enter number to be multiplied"); 
func=sc.nextInt(); 
digit= input*func; 
System.out.println("Final Answer:"+digit); 
} 
if(a==5) 
{ 
digit= Math.pow(input,2); 
System.out.println("Final Answer:"+digit); 
} 
if(a==6) 
{ 
digit=Math.sqrt(input); 
System.out.println("Final Answer:"+digit); 
} 
if(a==7) 
{ 
digit= Math.pow(input,3); 
System.out.println("Final Answer:"+digit); 
} 
if(a==8) 
{ 
digit= Math.cbrt(input); 
System.out.println("Final Answer:"+digit); 
} 
if(a==9) 
{ 
System.out.println("Thank you for using calculator"); 
} 
} 
if(a==10) 
{ 
    System.out.println("Thank you for using the calculator"); 
break; 
} 
}while(a!=9); 
} 
} 
+0

您能读取这段代码吗?我不能。 –

回答

0

是的,但你的陈述初始化输入均为内部if块,如果是什么都没有。以上?必须为输入提供一个默认值,否则,如果a不是1-9,那么它将不会有。