2013-10-05 52 views
0

这是我第一次尝试自己实际执行任何Java程序。在字符串双重转换中编译错误

我试图做一个程序,说一个数字是否是偶数。出于某种原因,我的程序不起作用。它一直说需要一个double,但是我提供了一个int。我有这被解析的双重事情,应该改变我的字符串成双,但我想它写错了。谁能告诉我为什么?

package javaapplication2; 

import javax.swing.JOptionPane; 
public class JavaApplication2 { 

    public void main(String[] args) { 
     int a; 
     String number; 
     number = JOptionPane.showInputDialog("What is your number"); 
     number = Double.parseDouble(number); 
     a = number 
     if ((number % 2) == 0); 
      System.out.println("That is an even number");  

     System.exit(0); 
    } 
} 
+0

没有对不起它说我需要一个int,但即时通讯提供一个字符串,但parsedouble应该字符串变成一个int类型。但我不认为它是这样做的。我对吗? –

+0

首先让你的主要方法是静态的。第二:删除行a =数字。并将Number = Double.parseDouble(number)更改为Double d = Double.parseDouble(number);第三:检查是否模2 2 –

+0

如果我使它静态不意味着它不返回一个值? –

回答

1

import javax.swing.JOptionPane; 


public class JavaApplication2 { 
public static void main(String[] args) { 
    int a; 
    String number; 
    number = JOptionPane.showInputDialog("What is your number"); 

//Double d = Double.parseDouble(number);//For Double 

a=Integer.parseInt(number);//Because of you declared a as int 

    if ((a % 2) == 0)//; 
     System.out.println("That is an even number"); 

    else{ 
     System.out.println("That is an odd number"); 
     } 
    System.exit(0); 
} 
} 

以下是输出1

output1

输出2

output2

OUTPUT3

3output

输出4

5output

2
number = Double.parseDouble(number); // error. 

数目被定义为字符串,而不是双。你将需要一个double变量来保存解析的值。

Double myDouble = Double.parseDouble(number); 
+0

为什么使用包装类而不是原始类? – arshajii

+0

我只处理了OP询问的错误消息。 –

1

有几个问题与代码:

  1. 应该有a = number行后一个分号。
  2. 代码

    number = Double.parseDouble(number); 
    

    是不行的,因为一个数字是不是字符串。我想你的意思是:

    a = Double.parseDouble(number); 
    
  3. parseDouble函数返回一个double,这是一个浮点值。您不能将其分配给一个整数值为int。您需要改用Integer.parseInt(number)
  4. main函数必须是static
  5. if声明后面不应该有分号。

由于所有这些问题,这似乎不太可能是您的真实代码。

这里是融合了所有这些更正代码:以下是该检查数量是否oddeven,你会发现这里是错在你的代码的完整代码

package javaapplication2; 

import javax.swing.JOptionPane; 

public class JavaApplication2 { 
    public static void main(String[] args) { 
     int a; 
     String number; 
     number = JOptionPane.showInputDialog("What is your number"); 
     a = Integer.parseInt(number); 
     if ((a % 2) == 0) 
      System.out.println("That is an even number"); 
     System.exit(0); 
    } 
}  
+1

你忘了,“if语句后面不应该有分号”。 – Eric

+0

@Eric感谢您的支持。现在修复。 – tbodt

+1

这段代码有错误:'number'是字符串,你怎么做'(number%2)== 0'。看到我的回答 – Yubaraj