您好我正在为更大的程序编写方法,但我不断收到无法找到符号的错误。请帮忙!
public static int maxInc (char []ch)
{
int current = 1;
int max = 1;
if (ch.length == 0)
{
return 0;
}
else if (ch.length == 1)
{
return 1;
}
else
{
for (int i = 1; i < ch.length; i++);
{
if(ch[i] >= ch[i-1]) //the error is at ch[i] and ch[i-1]
{
current++;
if(current > max)
max = current;
else
current = 1;
}
}
return max;
}
}
答案 0 :(得分:1)
这一行有一个半结肠:
for (int i = 1; i < ch.length; i++);
将其删除,然后按以下方式行:
for (int i = 1; i < ch.length; i++)
虽然有一个分号,但是什么都没发生,循环发生了什么。它只是一个声明。下面的代码就像第二个例子一样:
此示例代码
for (int i = 1; i < ch.length; i++);
{
if(ch[i] >= ch[i-1])
{
current++;
if(current > max)
max = current;
else
current = 1;
}
}
会像这样工作
for (int i = 1; i < ch.length; i++)
{
//Nothing is happening
}
// i will give error as the declaration was in the above loop
if(ch[i] >= ch[i-1])
{
current++;
if(current > max)
max = current;
else
current = 1;
}
答案 1 :(得分:0)
for (int i = 1; i < ch.length; i++);
问题在于,分号。去掉它。这样,你的for循环有效地看起来像......
for (int i = 1; i < ch.length; i++) {
// do nothing
}
&#34; For
&#34;执行下一个块,但是你用分号结束了那个块。
答案 2 :(得分:0)
我认为这一行会给出错误:
for (int i = 1; i < ch.length; i++);
按以下方式修改
for (int i = 1; i < ch.length; i++)
如果没有,请告诉我哪一行给你错误。