我正在尝试制作这个简单的赔率和偶数游戏。该程序可以完美运行,直到“1”。问题是:它不是将“手指”和“计算机”相乘,而是直接给出“计算机”的值,虽然我没有从其余代码中得到任何错误,但我也没有得到任何输出。我将“name”、“oe”和“finger”设为静态以便能够在循环外使用它们。import java.util.Scanner;import java.util.Random;public class OddsAndEvens {static String name; static String oe;static int finger;public static void main(String[] args) { Scanner input = new Scanner(System.in); System.out.println("Let’s play a game called “Odds and Evens”"); System.out.println("What is your name?"); String name = input.next(); while (true) { System.out.println("Hello " + name + " which one do you choose? (O)dds or (E)vens?"); String oe = input.next(); if (oe.equalsIgnoreCase("e")) { System.out.println(name + " has picked evens! The computer will be odds."); break; } if (oe.equalsIgnoreCase("o")) { System.out.println(name + " has picked odds! The computer will be evens."); break; } else { System.out.println("You have typed an invalid answer, lets try again"); } } while (true) { System.out.print("How many \"fingers\" do you put out? "); int finger = input.nextInt(); if (finger >= 0 && finger <= 5) { break; } else { System.out.println("Please write a number between 0 and 5"); } } Random rand = new Random(); int computer = rand.nextInt(5) + 0; System.out.println("Computer plays number " + computer); System.out.println("----------------------------------------------"); int sum = finger + computer; //1<------------------------------ if (sum % 2 == 0) { System.out.println(sum + " is even!"); if (oe.equalsIgnoreCase("e") && (sum % 2 == 0)) { System.out.println(name + " wins!"); } else { System.out.println("Computer wins!"); } } } }}}
3 回答
扬帆大鱼
TA贡献1799条经验 获得超9个赞
在第二个 while 循环中,您初始化一个finger
仅在 while 循环内有效的新局部变量,方法是说int finger =
而不是说来调用全局静态变量finger finger =
。
结果,全局变量finger
没有被初始化,sum
也没有什么可以添加到变量中computer
。
添加回答
举报
0/150
提交
取消