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

回答編集履歴

2

ロジックに矛盾があるように見えたので大幅追記

2020/09/16 02:21

投稿

AtsushiYonenaga
AtsushiYonenaga

スコア116

answer CHANGED
@@ -1,3 +1,5 @@
1
+ ### エラーの原因?
2
+
1
3
  else節はどの条件にも当てはまらなかった場合に通る部分だと思うので、elseの後に条件を書くことはできないのではないですか?
2
4
  該当部分のelseが不要なのではないでしょうか。
3
5
 
@@ -5,5 +7,12 @@
5
7
  else
6
8
  A.toString() == "" || B.toString() == ""
7
9
  -> Toast.makeText(this, "数値が入力されていません!!", Toast.LENGTH_SHORT).show()
10
+ ```
8
11
 
9
- ```
12
+ ### その前に、ロジックは正しい?
13
+
14
+ when文を見ると、クリックされたボタンが1〜4だった場合と、空白チェックが同じwhen文の中に入ってしまっています。
15
+
16
+ whenは複数の処理から1つを選んで実行するものなので、この書き方だとクリックされたものがボタン4つのうちのどれかであれば空白チェック部分は通らない、と言う意図に見えます。
17
+
18
+ おそらく、「クリックされたボタンがどれであっても空白チェックは行う = when文の外側に空白チェックがある」か「特定のボタンがクリックされた場合のみ空白チェックを行う = when内のいずれかの節の中に空白チェックがある」が、意図した仕様なのではないでしょうか?

1

「該当部分の」だけ追加

2020/09/16 02:21

投稿

AtsushiYonenaga
AtsushiYonenaga

スコア116

answer CHANGED
@@ -1,5 +1,5 @@
1
1
  else節はどの条件にも当てはまらなかった場合に通る部分だと思うので、elseの後に条件を書くことはできないのではないですか?
2
- elseが不要なのではないでしょうか。
2
+ 該当部分のelseが不要なのではないでしょうか。
3
3
 
4
4
  ```Kotlin
5
5
  else