错误:传递和返回变量时找不到符号
新手错误? 你好,我是一年级的计算机科学专业的学生,我一直找不到符号错误。我在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;
}
}
我们需要做如下修改:
-
Result
在main()
方法声明,因此,它是局部的,只main()
。getScore
不了解它。如果我们想要访问result
,input
和points
,getScore()
方法,那么我们需要将所有这些方法都传递给getScore()
。 -
getInput()
返回一个输入。所以,我们不需要通过任何争论。我们可以改变getInput(String response)
到getInput()
和修改main()
因此通过getInput()
返回值分配给input
变量(input = getInput();
) - Here是传递Java参数的一些基础知识。我会建议通过它。
我做了修改,但在第24行我得到相同的错误。 –
你可以用更改更新问题吗?另外,我们在线24上有什么? –
我改变了代码,第24行是} while(input ==“yes”);.我得到的唯一错误是这条线,因为输入变量。 –
你能指定你得到错误的代码行吗? – JanLeeYu