为了账号安全,请及时绑定邮箱和手机立即绑定

在操作中使用静态变量

在操作中使用静态变量

温温酱 2021-08-04 17:05:00
我正在尝试制作这个简单的赔率和偶数游戏。该程序可以完美运行,直到“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


查看完整回答
反对 回复 2021-08-04
  • 3 回答
  • 0 关注
  • 152 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信