public class Main { public static void main(String[] args) { メソッド1("abc"); メソッド2(10, 12.3f); int[] 配列 = {10, 11, 12}; メソッド3(配列); }; public static void メソッド1(String 文字列) { // 単一スカラー System.out.println("メソッド1 " + 文字列); // メソッド1 abc } public static void メソッド2(int 整数, float 実数) { // 複数スカラー float 合計 = 整数 + 実数; System.out.println("メソッド2 " + 合計); // メソッド2 22.3 }; public static void メソッド3(int[] 配列) { // 単一配列 int 配列長 = 配列.length; System.out.print("メソッド3 "); for (int i=0; i<配列長; i++) { System.out.print("配列[" + i + "]=" + 配列[i] + ","); // メソッド3 配列[0]=10,配列[1]=11,配列[2]=12, }; } }
Java での return は、JavaSxript と異なり、一つの値(配列やリストでもよい)しか戻せません。
return [戻り値1, 戻り値2, …]
のような記述はできません。
import java.util.*; // メソッド4でのArrayListに必要 public class Main { public static void main(String[] args) { int 戻り値1 = メソッド1(); System.out.println("戻り値1:" + 戻り値1); // 戻り値1:10 int[] 戻り値2 = メソッド2(); System.out.println("戻り値2:" + 戻り値2[0] + ", " + 戻り値2[1]); // 戻り値2:10, 11 int[] 戻り値3 = メソッド3(); System.out.println("戻り値3:" + 戻り値3[0] + ", " + 戻り値3[1]); // 戻り値3:10, 11 ArrayList<Integer>: 戻り値4 = メソッド4(); System.out.println("戻り値4:" + 戻り値4 // 戻り値4:[10, 11] + ", " + 戻り値4.get(0) + ", " + 戻り値4.get(1)); // ,10, 11 }; public static int メソッド1() { // スカラー int 戻り値1 = 10; return 戻り値1; }; public static int[] メソッド2() { // 配列 int[] 戻り値2 = {10, 11}; return 戻り値2; }; public static int[] メソッド3() { // スカラーを配列にまとめる int i = 10; int j = 11; int[] 戻り値3 = new int[2]; 戻り値3[0] = i; 戻り値3[1] = j; return 戻り値3; }; public static ArrayList<Integer>:メソッド4() { // リスト ArrayList<Integer>: 戻り値4 = new ArrayList<Integer>:(); 戻り値4.add(10); 戻り値4.add(11); return 戻り値4; }; }
構造型変数をクラスで設定させることにより、異なる型の要素を戻すことができます。
class クラス5 { String 文字列; // ┬ 構造体の定義 int 整数; // ┘ public static クラス5 メソッド5() { // 戻り値の型がクラス5で定義した構造型 クラス5 戻り値 = new クラス5(); // 戻り値が構造体変数になる 戻り値.文字列 = "abc"; 戻り値.整数 = 10; return 戻り値; // 複数の要素を一つの変数にした } } public class Main { public static void main(String[] args) { クラス5 戻り値 = クラス5.メソッド5(); System.out.println("戻り値5:" + 戻り値.文字列 + ", " + 戻り値.整数); //戻り値5:abc, 10 } }