teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

一度編集途中で誤投稿したため、その修正。

2020/02/29 16:18

投稿

KojimaYuuki
KojimaYuuki

スコア24

answer CHANGED
@@ -106,4 +106,13 @@
106
106
  なぜ戻り値部分の記述ができないのかというと、おそらく、インスタンスを作るメソッドなので、戻り値を定義する必要性が無いからだと思います。
107
107
 
108
108
  また、return文を内部で使うことはできます。
109
- ですが、ほとんどの場合、コンストラクタでそこまで複雑な処理をする必要が無く、引数のメンバ変数への代入などだけで済ませるため、あまり内部でreturn文を見ることはないのだと思います。
109
+ ですが、ほとんどの場合、コンストラクタでそこまで複雑な処理をする必要が無く、引数のメンバ変数への代入などだけで済ませるため、あまり内部でreturn文を見ることはないのだと思います。
110
+
111
+ ###よく、関数から値を返すのがreturnとありますが、「返す」とはなんでしょうか。println()処理やsetText()のような処理で引数に"hoge"を渡したらhogeと「返ってくる」という意味とはなぜ違うのですか。
112
+
113
+ あれは、値が返ってきているのではなく、出力されているだけです。
114
+ 値が返されている場合、メソッドの戻り値の型はvoidではなく、メソッド内でreturn 〇〇; のように値が返されており、また、
115
+ ```java
116
+ int i = Integer.parseInt(256);
117
+ ```
118
+ のように、値を取得できます。setText()やprintln()ではこれができません。これらのメソッドでは、目に見える形に表示する処理を内部で行っていますが、戻り値はありません。

1

一度編集途中で誤投稿したため、その修正。

2020/02/29 16:17

投稿

KojimaYuuki
KojimaYuuki

スコア24

answer CHANGED
@@ -1,4 +1,5 @@
1
1
  そんなに強いプログラマーではありませんが、自分の認識を共有させていただきます。
2
+ ※一度編集途中で誤投稿してしまいました。すいません。
2
3
 
3
4
  ### パターン1, 2
4
5
 
@@ -35,15 +36,34 @@
35
36
  これにより、場合によって以降の処理が不要になる場合、以降の処理をせずに値を返す、といったようなことが可能になります。
36
37
  これを利用して、
37
38
  ```java
39
+ //漢字とひらがなの対応付け
40
+ private String[][] data = {
41
+ {
42
+ "法華",
43
+ "冨賀",
44
+ "秘誉"
45
+ },
46
+ {
47
+ "ほげ",
48
+ "ふが",
49
+ "ぴよ",
50
+ }
51
+ };
38
52
 
39
53
  //該当する漢字があった場合、それに対応したひらがなの値を返す
40
54
  public String getKana(String val){
41
-
55
+ //漢字を順番に見ていく
42
-
56
+ for(int i = 0; i < data[0].length; i++){
57
+ //valと同じなら
58
+ if(data[0][i].equals(val))
59
+ return data[1][i];//対応するひらがなを返す
60
+ }
61
+ return null;
43
62
  }
44
63
  ```
64
+ のようなことができます。
45
65
 
46
- その、returnの直後に何らかの処理をさせようとしても、メソッドの処理は終了しているため、**無意味な記述だ**としてコンパイルエラーを起こします。たぶん。
66
+ た、returnの直後に何らかの処理をさせようとしても、メソッドの処理は終了しているため、**無意味な記述だ**としてコンパイルエラーを起こします。たぶん。
47
67
 
48
68
  つまり、
49
69
  ```java