由于某些原因,我的for循环没有运行,我似乎无法找出原因。它一直跳到return语句。谢谢。
public char[] palindromeCheck(char[] original) {
char[] reversed = new char[original.length];
for (int i = original.length; i <0; i--) {
switch (original[i]){
case 'A':
original[i] = Character.toLowerCase(original[i]);
break;
case 'E':
original[i] = Character.toLowerCase(original[i]);
break;
case 'I':
original[i] = Character.toLowerCase(original[i]);
break;
case 'O':
original[i] = Character.toLowerCase(original[i]);
break;
case 'U':
original[i] = Character.toLowerCase(original[i]);
break;
default:
original[i] = Character.toUpperCase(original[i]);
break;
}
reversed[i] = original[i];
}
return reversed;
}
答案 0 :(得分:6)
for (int i = original.length; i <0; i--)
条件始终为false,因为长度总是> = 0.由于您要为数组建立索引,您可能希望从length-1循环到0,如
for (int i = original.length - 1; i >= 0; i--)
答案 1 :(得分:1)
变化:
for (int i = original.length; i <0; i--) {
为:
for (int i = original.length; i >= 0; i--) {
否则它只是不进入循环,因为长度大于零,条件总是计算为false
。
答案 2 :(得分:1)
变化:
for (int i = original.length; i < 0; i--) {
为:
for (int i = original.length; i >= 0; i--) {
其他帖子正确解决了这个问题,但更改了您的条件,因此循环不会达到0.如果您想要达到0,请使用上面的>=
。
答案 3 :(得分:0)
可能你在for循环中写了错误的条件,总是假的
for (int i = original.length; i <0; i--)
长度总是> = 0.我认为你应该写i > 0
。
答案 4 :(得分:0)
for循环使结束表达式反转。
public char[] palindromeCheck(char[] original) {
char[] reversed = new char[original.length];
for (int i = original.length; i>0; i--) {
switch (original[i]){
case 'A':
original[i] = Character.toLowerCase(original[i]);
break;
case 'E':
original[i] = Character.toLowerCase(original[i]);
break;
case 'I':
original[i] = Character.toLowerCase(original[i]);
break;
case 'O':
original[i] = Character.toLowerCase(original[i]);
break;
case 'U':
original[i] = Character.toLowerCase(original[i]);
break;
default:
original[i] = Character.toUpperCase(original[i]);
break;
}
reversed[i] = original[i];
}
return reversed;
}
答案 5 :(得分:0)
在For循环中编写条件时,需要小心。 以下代码适用于您的情况。
for (int i = original.length; i >0; i--) {
//Your code
}
将来,当您处于调试模式时。学习如何识别这些错误。在这种情况下,您会注意到控件直接跳出for循环并分析循环内的每个单独条件。