Это мой первый вопрос здесь, спасибо за вашу помощь! (Пожалуйста, извините за любые грамматические ошибки, которые я делаю, я все еще изучаю английский)Вызов переменных подпрограммы void в Java
Я начал изучать этот язык Java около 2-3 недель назад, поэтому этот вопрос, вероятно, будет довольно легким для вас, но я не знаю, Не понимаю мою проблему. Я считаю, что я немного ошибся в своем коде, потеряв много часов, размышляя и исследуя онлайн-форумы. (Может быть, исследование не было бесполезно, но я до сих пор не могут решить эту проблему в одиночку, самостоятельно.)/Я использую Eclipse,/
Моя программа имеет 4 подпрограммы:
- государственной статической силы основных(): Здесь вызывается 3 других. Цель программы - запросить у пользователя допустимое имя файла, если оно существует, программа считывает его и подсчитывает символы, числа и т. Д. Внутри файла, последовательно за строкой.
- static void shortAnalyze(): Пользователь может выбирать между коротким и длинным анализом, это отображает только общий счетчик символов в тексте, все числа, количество строк.
- static void detailAnalyze(): Это очень похоже на предыдущее, за исключением отображает намного больше деталей, таких как количество специальных символов, самое длинное слово, наиболее используемые буквы, гласные и согласные, количество заглавных букв и т. Д. (и, возможно, создать новый пустой текстовый файл и сделать журнал)
- static void analysisText(): Это единственная подпрограмма, которая вычисляет, функция других состоит только в том, чтобы выписывать информацию. В основном, 2 подпрограммы, shortAnalyze() и detailAnalyze() - это «математические уравнения», сгруппированные вместе.
Текущий код еще не завершен, но я могу запустить его без ошибок. Я также использовал класс Java с именем TextIO, с которым мне легче работать, чем сканер.
Это где начинается моя актуальная проблема:
static void analyzeText() {
String line;
char currChar = ' ';
int nAll = 0; // nLetters + nNumbers + nOther +nEmpty
int nCharacters = 0; // nLetters + nNumbers + nOther
int nEmpty = 0; // nEmpty
int nOther = 0; // nOther
int nNumbers = 0; // nNumbers
int nLetters = 0; // nLetters
int[] uniqueChar = new int[2048];
boolean readingFile = true; // it is true, because analyzeText can be called only if fileName is valid
while(readingFile){
try {
line = TextIO.getln();
for (int i=0; i < line.length(); i++){
currChar = line.charAt(i);
if (currChar == ' '){
nEmpty++;
nAll++;
}
} //end of for
} //end of try
catch (IllegalArgumentException end_of_file) {
break;
}
} //end of analyzeText
} //end of readingFile
(Пожалуйста, обратите внимание, что есть много бесполезных и нефункциональных вещи и кодов)
И это моя подпрограмма:
static void shortAnalyze(){
System.out.println();
}
Я знаю (или я совершенно неправ), что пустота не может вернуть никаких значений. я все еще хочу что-то вроде:
static void shortAnalyze(){
System.out.println(analyzeText.nAll);
}
или
static void shortAnalyze(){
System.out.println(nAll);
}
Так что я хочу, чтобы вызвать переменную из пустого analyzeText() в другую пустоту, называемую shortAnalyze(). Как вы думаете, это возможно? У вас есть какие-то советы для меня, предложения?
Добавить параметр в ваш метод shortAnalyze, если вы хотите использовать там. – ControlAltDel
Здравствуйте, ControlAltDel, благодарю вас за ответ. Извините, я немного смущен.Если бы я добавил параметр к моему методу, он перестанет быть пустотой? И это означает, что мне нужно вернуть значение, но я хочу только написать «nAll», я не хочу изменять его значение, возвращать его и использовать в другом месте. Мне стыдно, но я вас не понимаю, извините. – Hydraxia