代碼很好,但是當我需要從函數中取出變量並將它們放入public static void時,它表示找不到該變量。任何人都知道如何解決這個問題?Java無法返回變量
import java.util.*;
public class Greetings {
public static void main(String[] args) {
System.out.println("Greetings, " + String(s) + ". " +
String(j) +"!" + " You are about " + int(z) + " years old");
}
public static String fNameGenerator(String s){
Scanner scan1 = new Scanner(System.in);
System.out.println("Please enter your first name: ");
String first = scan1.next();
s = first.substring(0,1).toUpperCase();
return s;
}
public static String LastName(String j){
Scanner scan2 = new Scanner(System.in);
System.out.println("Please enter you last name: ");
String second = scan2.next();
int x = second.length();
String y = second.substring(0, x).toLowerCase();
j = y.substring(0,1).toUpperCase();
return j;
}
public static int age(int z){
Scanner scan3 = new Scanner(System.in);
System.out.println("Please enter your year of birth: ");
int third = scan3.nextInt();
z = (2015 - third);
return z;
}
}
你想做什麼?根據定義,'void'方法(例如'main()')不能「返回」任何東西。 –
查看[從方法返回值](https://docs.oracle.com/javase/tutorial/java/javaOO/returnvalue.html)。基本上你需要在'main()'中聲明局部變量,從其他方法中刪除輸入參數(因爲它們是冗餘的),然後使用'System.out(..)'中的變量。例如:'String fName = fNameGenerator();''public static String fNameGenerator(){/*...*/ return y.substring(0,1).toUpperCase();}''System.out.println(「問候,「+ fName /*...*/);'。 –
更好的源代碼格式。 – Chuck