【问题标题】:I want to return the points from my TicTacToe class to my main class but it keeps giving me this error?我想将 TicTacToe 课程中的积分返回到我的主课程,但它一直给我这个错误?
【发布时间】:2013-06-14 03:46:09
【问题描述】:
发现 12 个错误和 12 个警告: -------------- *** 错误 *** -------------- 文件:C:\Users\John\Documents\Computer Science\Summative\TicTacToe.java [行:38] 错误:令牌“int”的语法错误,@预期 文件:C:\Users\John\Documents\Computer Science\Summative\TicTacToe.java [行:38] 错误:语法错误,插入“枚举标识符”以完成 EnumHeaderName 文件:C:\Users\John\Documents\Computer Science\Summative\TicTacToe.java [行:38] 错误:语法错误,插入“EnumBody”以完成 BlockStatement 文件:C:\Users\John\Documents\Computer Science\Summative\TicTacToe.java [行:40] 错误:标记“,”的语法错误。预期的 文件:C:\Users\John\Documents\Computer Science\Summative\TicTacToe.java [行:42] 错误:令牌“int”的语法错误,@预期 文件:C:\Users\John\Documents\Computer Science\Summative\TicTacToe.java [行:42] 错误:语法错误,插入“枚举标识符”以完成 EnumHeaderName 文件:C:\Users\John\Documents\Computer Science\Summative\TicTacToe.java [行:42] 错误:语法错误,插入“EnumBody”以完成 BlockStatement 文件:C:\Users\John\Documents\Computer Science\Summative\TicTacToe.java [行:44] 错误:标记“,”的语法错误。预期的 文件:C:\Users\John\Documents\Computer Science\Summative\TicTacToe.java [行:47] 错误:令牌“int”的语法错误,@预期 文件:C:\Users\John\Documents\Computer Science\Summative\TicTacToe.java [行:47] 错误:语法错误,插入“枚举标识符”以完成 EnumHeaderName 文件:C:\Users\John\Documents\Computer Science\Summative\TicTacToe.java [行:47] 错误:语法错误,插入“EnumBody”以完成 BlockStatement 文件:C:\Users\John\Documents\Computer Science\Summative\TicTacToe.java [行:49] 错误:标记“,”的语法错误。预期的

这是我的代码

  public class TicTacToe
  {
    public int winPoints1;
    public int winPoints2;
    public int losePoints1;
    public int losePoints2;
    public int tiePoints1;
    public int tiePoints2;

    public TicTacToe (int player1, int player2)
    {     
    int winCombo[][] = new int[][] 
    {
        {1, 2, 3}, {1, 4, 7}, {1, 5, 9},
        {4, 5, 6}, {2, 5, 8}, {3, 5, 7},
        {7, 8, 9}, {3, 6, 9}
    }; 
    for (int i = 0; i > 8;i++)
    {     
        if (player2 == winCombo[i][0])
        {
            winPoints2++;
            losePoints1++;

        }
        else
            tiePoints2++;

        if (player1 == winCombo[i][0])
        {
            winPoints1++;
            losePoints2++;

        }
        else 
            tiePoints1++;
    }
    public int getWinPoints()
    {
        return winPoints1, winPoints2;
    }     
        public int getLosePoints()
        {
            return losePoints1, losePoints2;

        }
        public int getTiePoints()
        {
            return tiePoints1, tiePoints2;

        }

      }          
    }

【问题讨论】:

  • 你不能从一个方法返回两个 int。您可以改为返回数组
  • 请注意,在public int getWinPoints 之前需要一个额外的},并且需要在文件末尾删除一个额外的}

标签: java


【解决方案1】:

Java 没有实现从单个函数返回多个值。

如果你想返回多个值,你的选择是

1) 传入函数会修改的参数,在外层函数中使用修改后的参数(注意ints和所有原语都是传值的,不起作用)

2) 返回一个包含所有要返回的值的对象(例如,一个数组或整数的 ArrayList)

【讨论】:

  • 对不起,你能给我一个我没听懂的例子吗。
  • @user2343211 尝试使用return new int[] {losePoints1, losePoints2}; 并创建函数public int[] 而不是public int。然后返回的int[] [0]losePoints1[1]losePoints2
【解决方案2】:

该代码中最明显的一点是Java 不支持多次返回,因此您不能return tiePoints1, tiePoints2;。您只能返回一个值。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-04-27
    • 1970-01-01
    • 2019-04-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多