【发布时间】:2019-03-21 18:26:46
【问题描述】:
我似乎无法访问在我创建的 3 个循环中定义的 randElement1、randElement2 和 randElement3。
我的程序创建了一个字符串,其中包含从列表中选择的 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 + ".");
}
}
【问题讨论】:
-
声明循环外的变量。当您在循环中声明它们时,它们会在循环结束后立即超出范围。
-
您不能“调用”变量。方法被调用。使用了变量。
-
您在 for 循环中创建它们。您必须在 for 循环之前创建它们,然后在它们之外初始化它们。