当前位置: 首页 > 知识库问答 >
问题:

如何跟踪java中if语句中的变量[重复]

韩照
2023-03-14

我无法跟踪随机数生成器分配的变量。我尝试生成两个不同范围的随机数,并根据更新分数或不更新分数生成的数字,然后根据一组规则告诉用户他们是赢还是输。

我已经附上了下面的代码,所以你可以看到我在说什么,但我基本上需要变量roll1和roll2的帮助,谢谢你的帮助。

import java.util.Random; // import random number class
import java.util.Scanner;  // Import the Scanner class
public class Main
{

public static void main(String[] args) {
    //rules and variables 
    System.out.println("Welcome to lucky dice, the computer will roll 2 dice...");
    //int roller1 = (int )(Math.random() * 10 + 1); //instance of random class
    //int roller2 = (int )(Math.random() * 20 + 2); //instance of random class
    //Random rand = new Random();
    int total = 0;
    int num = 0;
    int max = 11;
    int min = 1;
    int max2 = 21;
    int min2 = 2;
    
    //create a loop to keep rolling until the user wins or looses 
    while (num <= 20 && total >= -50 && total < 150){
        System.out.println("Are you ready to roll?");
        Scanner reply = new Scanner(System.in);  // Create a Scanner object
        String answer = reply.nextLine();
        Random rand = new Random();
        if (answer == "yes"){
            int roll1 = rand.nextInt(max - min) + min;//instance of random clas
            int roll2 = rand.nextInt(max2 - min2) + min2;//instance of random clas
           
            
        }while(roll2 % 2 == 1){
            int roll2 = rand.nextInt(max2 - min2); //instance of random clas
        }if (roll1 > roll2 || roll2 > roll1){
            total = total + roll1 + roll2; //keep track of score and tell user
            System.out.printf("Your roll was: " + roll1, roll2 + ".");
            System.out.printf("Your score is now " + total + ".");
            num = num + 1;
        }else if (roll1 == roll2){
            total = total + roll1 + roll2; //keep track of score and tell user
            System.out.printf("Your roll was: " + roll1, roll2 + ".");
            System.out.printf(" Your score is now " + total + ". ");
            num = num + 1;
        }
    }if (num > 20){
        System.out.println("You lost!");
    }else if (total >= 150){
        System.out.println("You won!");
    }else if (total >= -50){
        System.out.println("You lost!");
    }
        
   
  
}

}

共有1个答案

子车修平
2023-03-14

您已经在if块中声明了一个变量。声明上面的变量级别

 ...
    String answer = reply.nextLine();
    Random rand = new Random();
        int roll1 = 0;
        int roll2 = 0;
    if (answer.equals("yes")){
        roll1 = rand.nextInt(max - min) + min;//instance of random clas
        roll2 = rand.nextInt(max2 - min2) + min2;//instance of random clas  
    }...

还是搬到那里去

...
int min = 1;
int max2 = 21;
int min2 = 2;
int roll1 = 0;
int roll2 = 0;
....
 类似资料:
  • 我目前正在学习Java,作为其中的一部分,我正在尝试制作一个随机数生成器。 该项目仍处于早期阶段,但当我制作错误检查组件时,我遇到了一些问题,我一直在想为什么它不能以这种方式工作。 下面是错误检查器,它接收numberAmount(用户请求的随机数的数量)和randomDigit(随机数的最大位数)。 我想让它在数量或数字过高时进行标记,这可能会导致应用程序崩溃。 下面是代码。 当我不插入

  • 问题内容: 我收到以下代码的编译错误: 如果将其更改为以下代码,则没有编译错误: 为什么第一种语法是错误的,以及从哪种语言标准开始? 问题答案: Java规范说一条语句具有以下形式: 在哪里和可各种各样的事情,包括块(代码括号括起来),任务(已声明的变量),其他的if语句等。 值得注意的是,该列表中缺少声明语句(例如或),因此会出现编译错误。 有关完整列表,您可以在此处阅读Java规范:http

  • 我是一名It专业的一年级学生。我们的任务是为最终项目的支付系统创建一个概念方案。我们决定做一个工资项目。下面是我使用JOptionFrame和JOptionPane的代码片段 由于分配给工资变量的数字取决于工作岗位,我必须从if语句中调用它,以便计算准确。有人有办法吗?

  • 好吧,我正在使用字典,例如: 然后我想做的基本上是说,如果“用户”(一个参数)的名称前面有“@”,那么将变量前缀分配为“@”,如果他们的名称前面有“~”,则将变量前缀分配为“~”,如果他们有“ 然后我想说,如果用户的名字前面有“%”,则将前缀变量设置为“%”,否则将其设置为“”(因为这些值只有两个键)。为此,我需要一个if语句,并将其与self进行比较。声音的价值。 分配前缀变量的当前代码 目前,

  • 我的 views.py 交出了一个名为“preSelect”的变量,其中包含一个整数值。 在模板中,我想在 If 语句中使用该 Integer 来检查当前 for 循环计数器是否小于或大于我的值。 但是,这会返回以下错误: 环境: 申请方式: POST申请网址:http://127.0.0.1:8000/ Django版本:1.10.2 Python版本:2.7.11安装的应用:['django.

  • 问题内容: 在Python中,if语句内的变量作用域是否在if语句外可见?(来自Java背景,因此有点奇怪) 在以下情况下,首先在if块内部定义名称,但是该变量在if块外部也可见。我原以为会发生错误,但打印出“ joe”。 问题答案: 语句未在Python中定义范围。 循环,语句,/等都不会。 只有模块,函数和类定义范围。 请参阅Python教程中的Python作用域和命名空间。