java - 如何在for循环中调用变量?

标签 java scope

<分区>

我似乎无法访问在我创建的 3 个循环中定义的 randElement1randElement2randElement3

我的程序创建了一个字符串,其中包含从列表中选择的 3 个随机元素。

我知道这是一个简单的问题,我确实查了一下。我已经阅读了有关 Scopes 的所有内容,但我什至找不到解决我的特定编码问题的方法。谢谢。

import java.util.Scanner;
import java.util.ArrayList;
import java.util.Random;

public class Main {
  public static void main(String[] args) 
{
    Scanner userInput = new 
    Scanner(System.in);
    Random rand = new Random();

//Insult Bank
    String[] shakeInsults3 = new String[].{"scut", "apple-john", "baggage", "barnacle", "bladder", "boar-pig", "bugbear", "codpiece","flap-dragon", "giglet", "horn-beast","jolthead","wagtail","scut","pignut","vassal","moldwarp","lout","lewdster","measle","minnow","pumpion","ratsbane","varlet","maggot-pie","harpy"};

    String[] shakeInsults1 = new String[]{"artless", "bawdy", "beslubbering","bootless", "churlish", "cockered", "clouted", "craven", "currish", "dankish", "dissembling", "droning", "errant", "fawning", "fobbing", "froward", "frothy", "gleeking", "goatish", "gozbellied", "impertinent", "infectious", "jarring", "loggerheaded", "lumpish", "mammering", "mangled", "mewling", "paunchy", "pribbling", "puking", "puny", "quailing", "rank", "reeky", "roguish", "ruttish", "saucy", "spleeny", "spongy", "surly", "tottering", "unnuzzled", "vain", "venomed", "villainous", "warped", "wayward", "weedy", "yeasty"};

    String[] shakeInsults2 = new String[]{"base-court", "bat-fowling", "beef-witted", "beetle-headed", "boil-brained", "clapper-clawed", "clay-brained", "common-kissing", "crooked=pated", "dismal-dreaming", "dizzy-eyed","elf skinned", "fat=kidneyed", "fen-sucked", "fool-born", "half-faced", "hell-hated", "onion-eyed", "swag-bellied","reeling-ripe","rude-growing","ill-nurtured","guts-griping","shard-borne"};

//declaring
    int intRandomWord1 = shakeInsults1.length;
    int intRandomWord2 = shakeInsults2.length;
    int intRandomWord3 = shakeInsults3.length;


    for (int s = 0; s < 1; s++) {
      for (int i = 0; i < intRandomWord1; i++) {
          int randIndex1 = (int)(Math.random() * shakeInsults1.length);
          String randElement1 = shakeInsults1[randIndex1];       
  }

      for (int i = 0; i < intRandomWord2; i++) {
          int randIndex2 = (int)(Math.random() * shakeInsults2.length); 
          String randElement2 = shakeInsults2[randIndex2];

      }

      for (int i = 0; i < intRandomWord3; i++) {
          int randIndex3 = (int)(Math.random() * shakeInsults3.length); 
          String randElement3 = shakeInsults3[randIndex3];
      }
    }
    System.out.println("Thou ", + randElement1, ", " + randElement2 + ", " + randElement3 + ".");


  }


}

最佳答案

我想这就是你想要做的(虽然我现在不能在我的机器上测试它,抱歉。)请注意 Random 只是一个伪随机数生成器,不应该在真正随机时使用是必须的。在循环内部声明的任何变量都不会存在于循环外部。这将为 randElement1、2 和 3 生成新的字符串,每次循环。

   // This is so you don't get index out of bounds errors if the lists are different lengths.
   // You could combine these into one line with nested Math.min calls.
   // I made it two lines to be easier for you to read.
   int minListLength = Math.min(shakeInsults1.length, shakeInsults2.length);
   minListLength = Math.min(minListLength, shakeInsults3.length);

   for (int s = 0; s < minListLength; s++) {

          String randElement1 = shakeInsults1[rand.nextInt(shakeInsults1.length)];       

          String randElement2 = shakeInsults2[rand.nextInt(shakeInsults2.length)];

          String randElement3 = shakeInsults3[rand.nextInt(shakeInsults3.length)];

          System.out.println("Thou ", + randElement1, ", " + randElement2 + ", " + randElement3 + ".");

  }

关于java - 如何在for循环中调用变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55286976/

相关文章:

java - Akka调度程序: How akka scheduler work?

java - webdriver,你能帮忙使用java获取选项吗?

spring - 将请求作用域的 Bean 从一个页面传递到另一页面

PHP 作用域 -> Javascript 作用域模式?

java - 如何使用 Java 中的 FTP 在大型机上创建数据集

java - 使用 apache poi 更新 Word 2010 中的自定义属性

java - 如何为每个未点击的按钮添加积分?

c - while 循环内的变量作用域

javascript - 在 JavaScript 原型(prototype)函数中保留对 "this"的引用

java - 为什么我的一个类的自定义成员变量在其他类中没有更新?