如何使用else语句

时间:2014-04-03 01:05:57

标签: java

我在我的代码中尝试使用else语句,但我总是收到错误。

这是我的代码,我想说其他mode=0

public static int mode(int n[])
  {
      sort(n);
      int l[]=new int[n[n.length-1]+1];
      int mode = 0;
      int j = 0; // to count the number which repeated most
      int i=0;

      for ( i=0; i < n.length; i++) // for loop to go over all elements
      {
        l[n[i]]++; // increment the number
        if (j < l[n[i]]) 
            j = l[n[i]];
            mode = n[i];
        else
            mode=0;          
      }
      return mode;
  }

3 个答案:

答案 0 :(得分:4)

在if语句中加上大括号:

if (j < l[n[i]]){ 
    j = l[n[i]];
    mode = n[i];
}

没有括号,mode = n[i];将始终执行

答案 1 :(得分:1)

在这里,试试这个。

public static int mode(int n[])
  {

  sort(n);
  int l[]=new int[n[n.length-1]+1];
  int mode = 0;
  int j = 0; // to count the number which repeated most
  int i=0;



for ( i=0; i < n.length; i++) // for loop to go over all elements
 {
    l[n[i]]++; // increment the number
    if (j < l[n[i]]){ 
        j = l[n[i]];
        mode = n[i];}
    else
        mode=0;






}
return mode;


  }

你编译时你的else语句出错的原因是else要求&#34; if&#34;直接在它之前的条款。但是,通过不在if语句周围放置括号,编译器总是执行行&#34; mode = n [i];&#34;因为它在技术上并未包含在if语句中。

基本上,解决方案是为if语句添加括号。如果希望向if语句添加多行代码,而使用/ for循环或else语句,则需要括号。这是一个很好的习惯。

答案 2 :(得分:0)

public static int mode(int n[])
{
    sort(n);
    int l[]=new int[n[n.length-1]+1];
    int mode = 0;
    int j = 0; // to count the number which repeated most
    int i=0;

    for ( i=0; i < n.length; i++) // for loop to go over all elements
    {
        l[n[i]]++; // increment the number
        if (j < l[n[i]]) 
        { // After this bracket if true
            j = l[n[i]];
            mode = n[i];
        } // to here
        else
        { // This is where your else code happens
            mode=0;
        } // to here
    }
    return mode;
}

如果我没记错的话,如果你在if之后没有{},那么只会发生第一行。 [不要误解我的意思。] {} s总是一个好主意。

任何时候你有一个if,包括{} s,即使它只是为了清晰度而且只是为了简化将来的编辑。