解题思路:
注意事项:
问:为什么playgame函数必须加上static?
答:
`playGame` 函数在这里被声明为 `static`,是因为它被直接从 `main` 方法内部调用,而 `main` 方法本身是 `static` 的。在 Java 中,`static` 方法属于类而不是对象实例,可以从类级别调用而不需要创建类的实例。
具体原因如下:
1. `main` 方法是程序的入口点,它是一个静态方法(`static`),因为在程序开始执行时,还没有创建类的实例。静态方法可以在没有对象实例的情况下被调用。
2. `playGame` 方法被 `main` 方法内部直接调用,因此也需要是静态的。如果不加 `static`,你需要首先创建 `Main` 类的实例,然后通过实例来调用 `playGame` 方法。但在这个程序中,没有必要创建类的实例,因为 `playGame` 方法只是一个工具函数,不依赖于类的状态。
总之,为了在 `main` 方法内部直接调用 `playGame` 方法,你需要将其声明为 `static`,以使它可以在没有类实例的情况下被调用。如果你不将其声明为 `static`,编译器会报错,因为非静态方法不能在静态上下文中直接调用。
参考代码:
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int N = sc.nextInt(); sc.nextLine(); // 读取换行符 for (int i = 0; i < N; i++) { String[] choices = sc.nextLine().split(" "); String player1 = choices[0]; String player2 = choices[1]; String result = playGame(player1, player2); System.out.println(result); } } // 判断游戏结果 public static String playGame(String player1, String player2) { if (player1.equals(player2)) { return "Tie"; } else if ((player1.equals("Rock") && player2.equals("Scissors")) || (player1.equals("Scissors") && player2.equals("Paper")) || (player1.equals("Paper") && player2.equals("Rock"))) { return "Player1"; } else { return "Player2"; } } }
0.0分
3 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复