public class Sorting {
String value;
char[] string;
Node nude;
Node current = nude.getNext();
public Sorting(String value) {
this.value = value;
string = value.toCharArray();
token(string);
}
private void token(char[] string) {
boolean isNumber = false;
int trueCoefficient;
int truePower;
String temp;
String coefficient = "";
String power = "";
int coefficientSignCounter = 0;
int coefficientSign = 1;
for (int i = 0; i < string.length; i++) {
if (string[i] == '+' || string[i] == '-') {
for (int j = i; true; j++) {
if (string[j] == 'i')
coefficientSign++;
if (coefficientSignCounter % 2 != 0)
coefficientSign = -1;
if (Character.isDigit(string[j]))
i=j-1;
break;
}
}
else if(string[i]=='x')
trueCoefficient=1;
else if (Character.isDigit(string[i])) {
for (int j = i; true; j++)
if (Character.isDigit(string[j]))
coefficient = coefficient
+ Character.toString(string[j]);
trueCoefficient = Integer.parseInt(coefficient) * coefficientSign; //Error: Unreachable code
}
}
}
}
我还没准备好使用我的代码,但我无法摆脱这个错误。 任何人都可以帮忙吗? 我正在尝试做一个可以读取公式的代码,并使用链表对权力进行排序,如果有人有更多的想法,我会喜欢使用新的想法 谢谢!
答案 0 :(得分:2)
由于您在循环中声明了elseif
,因此无法访问if(condition)
条件
但在循环外使用elseif(condition)
应该是这样的
for(int i=0;i<someCondition;i++){//start of Block
if(condition){
}
else if(condition){
}
} // End of Loop
--------------------> you put elseif(condition) after this loop
因此获得Unreachable Code
。
注意: elseif() 条件应立即跟if
子句
您将在另一个位置获得错误
for (int j = i; true; j++)-----> Infinite Loop
if (Character.isDigit(string[j]))---> So only this will execute
coefficient = coefficient+ Character.toString(string[j]);
trueCoefficient = Integer.parseInt(coefficient) * coefficientSign; //Error: Unreachable code
由于Infinite Loop Last语句永远不会被执行,这就是为什么编译器会给你无法访问的代码错误
答案 1 :(得分:1)
你没有条件终止你的最后一个for循环。这是无限的。