【发布时间】:2019-10-04 07:35:25
【问题描述】:
averageLength 获取用户在前一种情况下输入的所有词,并获取平均词数。 switch 语句位于 main 方法下(此处未显示),但是当我尝试实现案例 3 以获得平均值时,它不起作用,因为average 未在main 方法下声明,它在averageLength 下。我怎样才能解决这个问题?谢谢
import java.util.Scanner;
import java.util.Arrays;
/**
* Word Manager
*
* @author Harry
*/
public class WordManager {
/**
* Adds the word to the next empty space in the array, if there is space.
* Returns the new size of the array.
*/
public static int add(String[] words, int count, String word) {
if (count < words.length) {
words[count] = word;
count++;
} else {
System.out.println("The array is full");
}
return count;
}
/** Displays the words in the collection as a comma separated list. */
public static void printList(String[] words, int count) {
}
public static void averageLength(String[] words, int count) {
Scanner sc = new Scanner(System.in);
double average;
double sum;
while (sc.hasNext()) {
String userInput = sc.next();
double charNum = userInput.length();
sum = charNum + sum;
count++;
if (count > 0) {
average = sum / count;
System.out.println("Average word length = " + average);
}
}
}
public static void main(String[] args ) {
Scanner sc = new Scanner(System.in);
String[] words = new String[20];
int count = 0;
String aWord;
int choice;
do {
System.out.println("\t MENU:");
System.out.println("1. Add a word");
System.out.println("2. Display words:");
System.out.println("3. Display average word length");
System.out.println("4. Quit");
System.out.println("Enter option: ");
choice = sc.nextInt();
System.out.println("choice = "+choice);
switch (choice) {
case 1:
System.out.println("Add a word");
aWord = sc.next();
count = add(words, count, aWord);
break;
case 2:
System.out.println("Display words");
System.out.println("We have an array of " + words.length + " integers: " + Arrays.toString(words));
break;
case 3:
averageLenth();
break;
default:
System.out.println("Invalid responce");
}
} while (choice >= 0 && choice < 4);
}
}
【问题讨论】:
-
我在这段代码中看不到
switch:我看到case和default,但看不到语句从哪里开始。 -
average是 main 方法中的局部变量。您不能在该方法之外使用它。一种解决方法是将其声明移到方法之外,在类主体中并使其成为static。 -
很难判断,因为您的代码不完整,但从
averageLength()函数返回average的值可能会有所帮助 -
我已经上传了整个代码