所以我正在创建一个随机代码,它不一定与这个级别的任何东西相关,但我更多的是测试一些想法。所以由于某种原因,我的代码会随机工作,但在大多数情况下,它会抛出一个随机负数,通常在 -413796084 附近。我不知道它为什么这样做,我试图将数字保持在 0 - 50 附近。我以为我做得对,但显然我没有。如果这有助于解释我犯的任何错误,我在 Java 方面也相对较新。
import java.util.Scanner;
import java.util.Random;
class damagecalc {
public static void main(String args[]){
    Scanner input = new Scanner(System.in);
    Random randamage = new Random();
    int totaldmg;
System.out.println("Will you (a) attack, (s) defend, (d) skip your turn, (f)         magic,     (i) use an item?");
    String dmgString = input.next();
    char dmgChar = dmgString.charAt(0);
    if(dmgChar == 'a'){
        for(int finaldmg=50;finaldmg<=50;finaldmg++){
        totaldmg = randamage.nextInt(10);
            }
    totaldmg = randamage.nextInt();
    if(totaldmg >= 50){
        System.out.println("You have defeated the monster!");
    }else{
        System.out.println("Damage Dealt:" + totaldmg);
        }
    }
  }
}
编辑 - - - - - - - - - - - - - - - - - - - - - - - -
所以我改变了我的代码并修复了一些东西,现在它每次都吐出 0。也许现在它会更容易弄清楚。但我绝对需要帮助。
这是新代码:
import java.util.Scanner;
import java.util.Random;
class damagecalc {
public static void main(String args[]){
    Scanner input = new Scanner(System.in);
    Random randamage = new Random();
    int totaldmg;
    System.out.println("Will you (a) attack, (s) defend, (d) skip your turn, (f) magic, (i) use an item?");
    String dmgString = input.next();
    char dmgChar = dmgString.charAt(0);
    if(dmgChar == 'a'){
        for(int finaldmg=1;finaldmg<=50;finaldmg++){
            }
        totaldmg = randamage.nextInt(1);
        if(totaldmg >= 50){
            System.out.println("You have defeated the monster!");
        }else{
            System.out.println("Damage Dealt:" + totaldmg);
           }
     }
  }
}