2015-11-12 136 views
-2

我知道我的代码仍然存在缺陷(它正在进行中)。但是,我得到了这些夫妇的错误,我不明白为什么。 任何帮助都表示赞赏谢谢!这些Java错误意味着什么?

论文是错误

C:\Users\me\Documents\MailOrderEMH.java:27: error: variable numBoxes is already defined in method main(String[]) 
    int numBoxes = Integer.parseInt(numBoxesString); 
     ^
C:\Users\me\Documents\MailOrderEMH.java:70: error: bad operand types for binary operator '||' 
    while (enterAnother == "Y" || "y") 
           ^
    first type: boolean 
    second type: String 
C:\Users\me\Documents\MailOrderEMH.java:102: error: incompatible types: String cannot be converted to int 
      ("Enter Number of Boxes: "); 
      ^
3 errors 

Tool completed with exit code 1 

这里是代码

import javax.swing.JOptionPane; // Imports JOptionPane class. 

public class MailOrderEMH 
{ 
    public static void main(String[] args) 
    { 
    // Declare string variables 
    String title; 
String firstName; 
String lastName; 
String streetAddress; 
String city; 
String state; 
String zip; 
String numBoxesString; 
int numBoxes; 
int count = 1; 
String enterAnother = "Y"; //INITILIZE the loop control variable 

//get input values from user 
numBoxesString = JOptionPane.showInputDialog 
("Enter Number of Boxes: "); 

//Conver srring to integer 
int numBoxes = Integer.parseInt(numBoxesString); 

//get input values from user 
title = JOptionPane.showInputDialog 
("What is your title ex. (Ms. Mr. Dr.) "); 

//get input values from user 
firstName = JOptionPane.showInputDialog 
("Enter First Name: "); 

//get input values from user 
lastName = JOptionPane.showInputDialog 
("Enter Last Name: "); 

//get input values from user 
streetAddress = JOptionPane.showInputDialog 
("Enter Street Address: "); 

//get input values from user 
city = JOptionPane.showInputDialog 
("Enter City: "); 

//get input values from user 
state = JOptionPane.showInputDialog 
("Enter State: "); 

//get input values from user 
zip = JOptionPane.showInputDialog 
("Enter Zip Code: "); 


while (count <= numBoxes) 
{ 
    System.out.println(title + firstName + lastName); 
    System.out.println(streetAddress); 
    System.out.println(city + state + zip); 
    System.out.println("Box" + count + "of" + numBoxes); 
    count = count + 1; 
} 
//get input values from user 
enterAnother = JOptionPane.showInputDialog 
(" Do you want to produce more labels? Y or N "); 

while (enterAnother == "Y" || "y") 
{ 
     //get input values from user 
     title = JOptionPane.showInputDialog 
     ("What is your title ex. (Ms. Mr. Dr.) "); 

     //get input values from user 
     firstName = JOptionPane.showInputDialog 
     ("Enter First Name: "); 

     //get input values from user 
     lastName = JOptionPane.showInputDialog 
     ("Enter Last Name: "); 

     //get input values from user 
     streetAddress = JOptionPane.showInputDialog 
     ("Enter Street Address: "); 

     //get input values from user 
     city = JOptionPane.showInputDialog 
     ("Enter City: "); 

     //get input values from user 
     state = JOptionPane.showInputDialog 
     ("Enter State: "); 

     //get input values from user 
     zip = JOptionPane.showInputDialog 
     ("Enter Zip Code: "); 

     //get input values from user 
     numBoxes = JOptionPane.showInputDialog 
     ("Enter Number of Boxes: "); 
} 
// End program. 
     System.exit(0); 
} 

}

+1

[我如何准备在Java中比较字符串?](http://stackoverflow.com/questions/513832/how-do-i-compare-strings-in-java) – MadProgrammer

+0

感谢您的帮助,但哪个错误是在这里refinance。第二个? – Grace

+0

我试着改变它while(enterAnother.equal(“Y”||“y”)),它仍然给我完全相同的错误 – Grace

回答

0

C:\Users\me\Documents\MailOrderEMH.java:27: error: variable numBoxes is already defined in method main(String[])
int numBoxes = Integer.parseInt(numBoxesString);

您已经声明numBoxes两次

int numBoxes; 
//... 
int numBoxes = Integer.parseInt(numBoxesString); 

C:\Users\me\Documents\MailOrderEMH.java:70: error: bad operand types for binary operator '||'
while (enterAnother == "Y" || "y")

条件需要解析到truefalse,其中"y"String,这是没有意义的。此外==不在于你如何比较String S IN Java中,一个简单的解决办法是做这样的事情......

while ("Y".equalsIgnoreCase(enterAnother) { 

C:\Users\me\Documents\MailOrderEMH.java:102: error: incompatible types: String cannot be converted to int
("Enter Number of Boxes: ");

JOptionPane#showInputDialog返回String值,所以试图将String分配给int韩元没有工作。

你可以做这样的事情......

String value = JOptionPane.showInputDialog("Enter Number of Boxes: "); 
if (value != null) { 
    numBoxes = Integer.parseInt(value); 
} 

记住,JOptionPane.showInputDialog也可以返回null如果对话框被用户取消,所以您需要为eventuallaity

+0

建议'enterAnother ==“y”|| enterAnother ==“Y”'比“Y”.equalsIgnoreCase(enterAnother)'好得多,因为OP是初学者,误解了C语言中的'||'与英语中的“or”不同。 –

+0

@Rhymoid除了== ==不是'String'比较在Java中的工作原理 – MadProgrammer

+0

对!我的错。不过,我会用''y“.equals(enterAnother)||使步骤更加明确“Y”.equals(enterAnother)'作为(中级)建议。 –

相关问题