错误:传递和返回变量时找不到符号

问题描述:

新手错误? 你好,我是一年级的计算机科学专业的学生,​​我一直找不到符号错误。我在main方法中声明变量,将它传递给另一个方法,对其进行修改,然后将其返回。出于某种原因,编译器无法找到符号结果,输入和点。我相信这是所有人都有同样的原因。任何帮助,将不胜感激。错误:传递和返回变量时找不到符号

public class Fishing 
{ 
    public static void main(String[] args) 
    { 
     do 
     { 
     String input;  //Holds user input 
     int points;  // Holds player's points 
     int score = 0; // Sets player's score to 0 
     final int DIE_SIDES = 6; // # of sides for the die 

     //Create an instance of the Die class 
     Die die = new Die(DIE_SIDES); 

     //Roll the die once and store value in result 
     die.roll(); 
     int result = die.getValue(); 

     getScore(points, result); 
     String input = getInput(); 

     //Keeps running total of player's score 
     score = score + points; 

     } while (input == "yes"); 
     System.out.print(0); 
    } 

    /** 
    The getScore method will calculate the player's score 
    depending on what the player rolled. It will also show 
    a message and return the score. 
    @return A reference to an integer object containing 
      the player's score for one roll. 
    */ 

    public static int getScore(int points, int result) 
    { 
     if (result == 1) 
     { 
     JOptionPane.showMessageDialog(null, "Waaaaahhhhh, you have caught " + 
            "a shark. Sharks are dangerous. You " + 
             "have been awarded zero points."); 
     points = 0; 
     return points; 
    } 
    else if (result == 2) 
    { 
     JOptionPane.showMessageDialog(null, "You have caught a jellyfish. " + 
           "This beautiful creature has awarded you " + 
                  "50 points!!"); 
     points = 50; 
     return points; 
    } 
    else if (result == 3) 
    { 
     JOptionPane.showMessageDialog(null, "You have caught an old boot. " + 
          "Maybe you can sell this old boot after it " + 
          "dries out. You have been awarded 1 point."); 
     points = 1; 
     return points; 
    } 
    else if (result == 4) 
    { 
     JOptionPane.showMessageDialog(null, "You have caught an Alaskan salmon. " + 
          "This delicious and popular fish has awarded you " + 
                   "75 points!!!"); 
     points = 75; 
     return points; 
    } 
    else if (result == 5) 
    { 
     JOptionPane.showMessageDialog(null, "You have caught a small fish. You " + 
               "have been awarded 20 points!");                     
     points = 20; 
     return points; 
    } 
    else 
    { 
     JOptionPane.showMessageDialog(null, "You have caught a treasure chest!! " + 
           "It is filled with shining pieces of gold, and " + 
             "you have been awarded 100 points!!!!"); 
     points = 100; 
     return points; 
    } 
    } 

    /** 
     The getInput method will receive the user's input 
     and return it to the main method. 
     @return A reference to a String input value containing 
       the user's response. 
    */ 

    public static String getInput() 
    { 
     //Prompt user to enter response 
     response = JOptionPane.showInputDialog("Would you like to play another " + 
            "round of fishing? Enter yes or no."); 
     return response; 
    } 
} 
+0

你能指定你得到错误的代码行吗? – JanLeeYu

我们需要做如下修改:

  • Resultmain()方法声明,因此,它是局部的,只main()getScore不了解它。如果我们想要访问result,inputpoints,getScore()方法,那么我们需要将所有这些方法都传递给getScore()
  • getInput()返回一个输入。所以,我们不需要通过任何争论。我们可以改变getInput(String response)getInput()和修改main()因此通过getInput()返回值分配给input变量(input = getInput();
  • Here是传递Java参数的一些基础知识。我会建议通过它。
+0

我做了修改,但在第24行我得到相同的错误。 –

+0

你可以用更改更新问题吗?另外,我们在线24上有什么? –

+0

我改变了代码,第24行是} while(input ==“yes”);.我得到的唯一错误是这条线,因为输入变量。 –