2012-06-26 201 views
0

我正在尝试使用几个数字执行简单的数学运算。一旦完成,我希望将类型为int的数字更改为字符串。我能够得到代码来编译前4个else语句,但第5个在创建n5x时给我一个问题。我不允许在else语句中创建一个值吗?如果是的话,有没有办法解决这个问题?谢谢。将Int值更改为字符串

      if (n1==1){ 
           int n1x = ((n1*10 +n2) + (n3*10+n4)+(n5)); 
           n1s = Integer.toString(n1x); 

           outFile.println(n1s);} 
          else if (n2==2){ 
           int n2x = (n2 + (n1*10 + n3)+(n4*10+ n5)); 
           n2s = Integer.toString(n2x); 
           outFile.println(n2s);} 
          else if (n3==3){ 
           int n3x = ((n3*10 +n2) + n1+ (n4*10+n5)); 
           n3s = Integer.toString(n3x); 
           outFile.println(n3s);} 
          else if (n4 == 4){ 
           int n4x = (n4 + (n3 +n2*10)+(n5+n1*10)); 
           n4s = Integer.toString(n4x); 
           outFile.println(n4s);} 
          else 
           int n5x = ((n5) + (n4+ n3*10) + (n2+n1*10)); 
           n5s = Integer.toString(n5x); 
           outFile.println(n5s); 
+8

使用适当的缩进/支撑风格,你会避免许多错误。 –

+0

...如果不是为了避免错误;格式化我们的代码,试图回答你的问题。 – Mizipzor

+1

这就是为什么末端大括号得到自己的路线 –

回答

7

你的else子句缺少大括号。

变量n5x仅在else子句中定义。没有大括号,else子句只包含声明。

它应该是这样的:

else { 
    int n5x = ((n5) + (n4+ n3*10) + (n2+n1*10)); 
    n5s = Integer.toString(n5x); 
    outFile.println(n5s); 
} 
2

你错过{}上的最后一个else语句

0

否则应在括号中。它应该是如下 -

     else { 
          int n5x = ((n5) + (n4+ n3*10) + (n2+n1*10)); 
          n5s = Integer.toString(n5x); 
          outFile.println(n5s);} 
0

你最后else条款:

else 
    int n5x = ((n5) + (n4+ n3*10) + (n2+n1*10)); 
    n5s = Integer.toString(n5x); 
    outFile.println(n5s); 

实际上是由Java编译器这样解释的:

else { 
    int n5x = ((n5) + (n4+ n3*10) + (n2+n1*10)); 
} 
n5s = Integer.toString(n5x); 
outFile.println(n5s); 

在一般笔记,你应该有{}在任何控制语句中有多个语句。