2014-10-16 66 views
0

我想创建一种付款单打印在控制台中,但我从我的代码中收到以下错误。它真的只是一个错误很多次,但我不认为我有足够的Java知识来自己修复它。错误:无法找到符号符号:变量A

import java.io.*; 
import java.text.*; 
import java.util.Scanner; 

class Assign2num2 
{ 
    public static void main (String [] args) 
    { 
    String famname, firstname; 
    double gross, deduct, tax, pay, hrs, ovtm; 
    char letter, yn; 
    Scanner in = new Scanner(System.in); 
    System.out.println("Please enter your family name and first name."); 
    famname = in.nextLine(); 
    firstname = in.nextLine(); 
System.out.println("Please enter how much you are paid per hour and the amount of hours you worked this week. Enter overtime hours seperately please."); 
pay = in.nextInt(); 
if (pay<0) { 
    System.out.println("You must enter a positive number or zero for your hourly pay."); 
    pay = in.nextInt(); 
} 
    else { 
    pay = pay; 
    } 
hrs = in.nextInt(); 
if (hrs<0||hrs>40) { 
    System.out.println("You must enter a positive number less than or equal to 40, or zero for the amount of hours worked this week."); 
    hrs = in.nextInt(); 
} 
    else { 
    hrs = hrs; 
    } 
ovtm = in.nextInt(); 
if (ovtm<0) { 
    System.out.println("You must enter a positive number or zero for your overtime hours worked."); 
    ovtm = in.nextInt(); 
} 
    else { 
    ovtm = ovtm; 
    } 
    gross = (pay*hrs) + ((pay*2)*ovtm); 
System.out.println("Please enter a letter indicating your tax category: A is no tax deduction, B is 10% of gross pay, \nC is 20% of gross pay, D is 29% of gross pay, E is 35% of gross pay"); 
letter = in.next().charAt(0); 
if (letter==A||letter==a){ 
    letter = letter; 
    gross = gross; 
} 
    else if (letter==B||letter==b){ 
    letter = letter; 
    deduct = (gross*0.1); 
    tax = gross - deduct; 
} 
    else if (letter==C||letter==c){ 
    letter = letter; 
    deduct = (gross*0.2); 
    tax = gross - deduct; 
} 
    else if (letter==D||letter==d){ 
    letter = letter; 
    deduct = (gross*0.29); 
    tax = gross - deduct; 
} 
    else if (letter==E||letter==e){ 
    letter = letter; 
    deduct = (gross*0.35); 
    tax = gross - deduct; 
} 
    else { 
    System.out.println("You must enter a letter between A and E."); 
    letter = in.next().charAt(0); 
} 

System.out.println("If you want $20.00 deducted from your weekly pay as a contribution to the \nUnited Way Charity, enter Y for yes. If not, enter N for no."); 
yn = in.next().charAt(0); 
if (letter==Y||letter==y||letter==N||letter==n){ 
    yn = yn; 
} 
    else { 
    System.out.println("You must enter either Y or N."); 
    yn = in.next().charAt(0); 
} 
    if (yn==Y||yn==y) { 
    deduct = deduct + 20; 
    tax = tax - 20; 
    } 
    else { 
    deduct = deduct; 
    tax = tax; 
    System.out.println("PAY SLIP"); 
    System.out.println("---------"); 
    System.out.println(famname + ", " + firstname); 
    System.out.println("---------"); 
    System.out.println("Gross Pay: " + gross); 
    System.out.println("---------"); 
    System.out.println("Deductions: " + deduct); 
    System.out.println("---------"); 
    System.out.println("Net Pay: " + tax); 
    } 
} 
} 

16 errors found: 
File: G:\Computer Science\Dr Java Exercises\Java Files\Assign2num2.java [line: 44] 
Error: cannot find symbol 
symbol: variable A 
location: class Assign2num2 
File: G:\Computer Science\Dr Java Exercises\Java Files\Assign2num2.java [line: 44] 
Error: cannot find symbol 
symbol: variable a 
location: class Assign2num2 
File: G:\Computer Science\Dr Java Exercises\Java Files\Assign2num2.java [line: 48] 
Error: cannot find symbol 
symbol: variable B 
location: class Assign2num2 
File: G:\Computer Science\Dr Java Exercises\Java Files\Assign2num2.java [line: 48] 
Error: cannot find symbol 
symbol: variable b 
location: class Assign2num2 
File: G:\Computer Science\Dr Java Exercises\Java Files\Assign2num2.java [line: 53] 
Error: cannot find symbol 
symbol: variable C 
location: class Assign2num2 
File: G:\Computer Science\Dr Java Exercises\Java Files\Assign2num2.java [line: 53] 
Error: cannot find symbol 
symbol: variable c 
location: class Assign2num2 
File: G:\Computer Science\Dr Java Exercises\Java Files\Assign2num2.java [line: 58] 
Error: cannot find symbol 
symbol: variable D 
location: class Assign2num2 
File: G:\Computer Science\Dr Java Exercises\Java Files\Assign2num2.java [line: 58] 
Error: cannot find symbol 
symbol: variable d 
location: class Assign2num2 
File: G:\Computer Science\Dr Java Exercises\Java Files\Assign2num2.java [line: 63] 
Error: cannot find symbol 
symbol: variable E 
location: class Assign2num2 
File: G:\Computer Science\Dr Java Exercises\Java Files\Assign2num2.java [line: 63] 
Error: cannot find symbol 
symbol: variable e 
location: class Assign2num2 
File: G:\Computer Science\Dr Java Exercises\Java Files\Assign2num2.java [line: 75] 
Error: cannot find symbol 
symbol: variable Y 
location: class Assign2num2 
File: G:\Computer Science\Dr Java Exercises\Java Files\Assign2num2.java [line: 75] 
Error: cannot find symbol 
symbol: variable y 
location: class Assign2num2 
File: G:\Computer Science\Dr Java Exercises\Java Files\Assign2num2.java [line: 75] 
Error: cannot find symbol 
symbol: variable N 
location: class Assign2num2 
File: G:\Computer Science\Dr Java Exercises\Java Files\Assign2num2.java [line: 75] 
Error: cannot find symbol 
symbol: variable n 
location: class Assign2num2 
File: G:\Computer Science\Dr Java Exercises\Java Files\Assign2num2.java [line: 82] 
Error: cannot find symbol 
symbol: variable Y 
location: class Assign2num2 
File: G:\Computer Science\Dr Java Exercises\Java Files\Assign2num2.java [line: 82] 
Error: cannot find symbol 
symbol: variable y 
location: class Assign2num2 
+1

请格式化您的代码... – Joren 2014-10-16 20:37:08

回答

2

当你比较变量所需的字符,字符必须是单引号,否则编译器认为,这是另一个变量,它没有定义。

E.g.改变

if (letter==A||letter==a){ 

if (letter=='A'||letter=='a'){ 
+0

是的。您的信件条件的其余部分也一样 – 2014-10-16 20:36:40

+0

好的,非常感谢!然而,我之前没有使用循环,但是当我运行这段代码时,我不希望它接受工作小时数,工资/小时数,加班时间等的负数。我有一个if语句检查这些,但如果输入负数第二次提问后,它允许它。 – 2014-10-16 21:08:18

+0

从未想到它 – 2014-10-16 21:15:45

0

你需要使用'

if (letter == 'A') 

字符文字必须由被sorrounded'和字符串常量必须通过 “”

包围
+0

他的字段“字母”被定义为char类型。 – MarsAtomic 2014-10-16 20:37:37

+0

oops,编辑。谢谢 – user2717954 2014-10-16 20:39:35

0

使用字母=='D',并且同样。字符文字用单引号括起来。

相关问题