2011-10-15 167 views
0

我正在制作一个非常基本的计算器程序(我对Java相当陌生)。我使用java.io.Console包进行命令行输入,并且我的代码看起来像这样的:“找不到符号”错误

import java.io.Console; 

public class calculator { 

public static void main(String args[]) { 

Console console = System.console(); 
int exit = 1; 


System.out.println("Calculator v1.0 by rulla101"); 
System.out.println(" "); 

String inputselect = console.readLine("Type add, sub, mlt, or div to select operation: "); 

if (inputselect == "add") { 

//ADDING!!! 
while(exit > 0) { 

String input1a = console.readLine("Input number 1: "); 
int a = Integer.parseInt(input1a); 

String input2a = console.readLine("Input number 2: "); 
int b = Integer.parseInt(input2a); 

System.out.println("The answer is:"); 
System.out.println(a+b); 

String exitstringa = console.readLine("Type 0 to exit, type 1 to add two more numbers: "); 
int extseta = Integer.parseInt(exitstringa); 

if(extseta == 0){ 
    exit--; 
    } 
} 

} 
else if (inputselect == "sub") { 

//SUBTRACTING! 

while(exit > 0) { 

String input1s = console.readLine("Input number 1: "); 
int c = Integer.parseInt(input1s); 

String input2s = console.readLine("Input number 2: "); 
int d = Integer.parseInt(input2s); 

System.out.println("The answer is:"); 
System.out.println(c-d); 

String exitstrings = console.readLine("Type 0 to exit, type 1 to subtract two more numbers: "); 
int extsets = Integer.parseInt(exitstrings); 

if(exitsets == 0){ 
    exit--; 
} 

} 

} 
else if (inputselect == "mlt"){ 

//MULTIPLYING!! 

while(exit > 0) { 

String input1m = console.readLine("Input number 1: "); 
int e = Integer.parseInt(input1m); 

String input2m = console.readLine("Input number 2: "); 
int f = Integer.parseInt(input2m); 

System.out.println("The answer is:"); 
System.out.println(e*f); 

String exitstringm = console.readLine("Type 0 to exit, type 1 to multiply two more numbers: "); 
int extsetm = Integer.parseInt(exitstringm); 

if(exitsetm == 0){ 
    exit--; 
} 
} 
} 
else if (inputselect == "div"){ 

//DIVIDING!! 

while(exit > 0) { 

String input1d = console.readLine("Input number 1: "); 
int g = Integer.parseInt(input1d); 

String input2d = console.readLine("Input number 2: "); 
int h = Integer.parseInt(input2d); 

System.out.println("The answer is:"); 
System.out.println(g/h); 

String exitstringd = console.readLine("Type 0 to exit, type 1 to divide two more numbers: "); 
int extsetd = Integer.parseInt(exitstringd); 

if(exitsetd == 0){ 
    exit--; 
} 
} 
} 
} 
} 

但是,当我试图编译程序时,我得到这个:

/Users/ethan/javafolder/calculator/calculator.java:58: cannot find symbol 
symbol : variable exitsets 
location: class calculator 
    if(exitsets == 0){ 
    ^
/Users/ethan/javafolder/calculator/calculator.java:83: cannot find symbol 
symbol : variable exitsetm 
location: class calculator 
    if(exitsetm == 0){ 
    ^
/Users/ethan/javafolder/calculator/calculator.java:106: cannot find symbol 
symbol : variable exitsetd 
location: class calculator 
    if(exitsetd == 0){ 
    ^
3 errors 


Done 

我不明白...有问题的变量没有预先定义的或任何.. 。我很确定它们存在于代码中......任何人都可以挑出错误?

(附注:我知道这是真的很笨重,臃肿,我可能可以做到这一点的一半多行,但我承担。请。)

-rulla101

+0

你使用什么编译器(版本/供应商)?另外,尝试将这些变量的分配声明从“int”更改为“Integer”。我真的不知道为什么会这么重要,但'Integer.parseInt'返回一个'Integer'对象(应该在你的赋值中被转换为原始类型,只是好奇而已) –

+0

我正在使用附带的javac编译器Mac OSX,你通过终端执行它 – rulla101

+0

哪个版本的SDK? –

回答

1

看三个错误。

int extsets = Integer.parseInt(exitstrings); 

if(exitsets == 0){ //must be extsets 
    exit--; 
} 


int extsetm = Integer.parseInt(exitstringm); 

if(exitsetm == 0){ //must be extsetm 
    exit--; 
} 


int extsetd = Integer.parseInt(exitstringd); 

if(exitsetd == 0){ //must be extsetd 
    exit--; 
} 
+0

是的,我刚刚看到了,我觉得很愚蠢......谢谢 – rulla101

+0

我感觉很笨,因为我没有看不到它:)。 –