質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

Q&A

1回答

5047閲覧

「到達不能なステートメント」が解決できません。

meistjrs

総合スコア6

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

0グッド

0クリップ

投稿2017/09/18 14:53

###前提・実現したいこと
ここに質問したいことを詳細に書いてください
(例)PHP(CakePHP)で●●なシステムを作っています。
■■な機能を実装中に以下のエラーメッセージが発生しました。

###発生している問題・エラーメッセージ

Androidアプリ開発についての質問です。 Android Studioで、アプリを作る練習として計算機アプリを作っているのですが、 エラーが解決できなくて困っています。 ソースコードは下に書いてある通りなのですが、 これをAndroid Studioで実行しようとすると、 switch文の中のcase '+'のところのbreak文の下にエラーの赤線が出てきて、 「到達不能なステートメントです。」と表示されてしまいます。 僕がこのプログラムの中のエラーが起こっている部分でやりたいのは、 4つのラジオボタンで四則演算の+-×÷を管理して、 「計算」ボタンを押すと計算結果が表示させるようにすることです。 なので、ラジオボタンのテキストを読み取って条件分岐しようと思ったのですが、うまくいきませんでした。 ぜひ回答お願いいたします。

###該当のソースコード

Java

1package com.example.aaaa.calculator; 2 3import android.support.v7.app.AppCompatActivity; 4import android.os.Bundle; 5import android.text.Editable; 6import android.text.TextUtils; 7import android.text.TextWatcher; 8import android.widget.EditText; 9import android.widget.RadioGroup; 10import android.widget.RadioButton; 11 12public class MainActivity extends AppCompatActivity implements TextWatcher{ 13 14 private EditText numberInput1,numberInput2,result; 15 16 @Override 17 protected void onCreate(Bundle savedInstanceState) { 18 super.onCreate(savedInstanceState); 19 setContentView(R.layout.activity_main); 20 21 //EditText1内の数字を取得 22 numberInput1 = (EditText) findViewById(R.id.number1); 23 //EditText1内の文字入力イベントを受け取る 24 numberInput1.addTextChangedListener(this); 25 26 //EditText2内の数字を取得 27 numberInput2 = (EditText) findViewById(R.id.number2); 28 //EditText2内の文字入力イベントを受け取る 29 numberInput2.addTextChangedListener(this); 30 31 //計算結果が表示されるテキストエリアのidを取得する 32 result=(EditText)findViewById(R.id.result); 33 34 35 } 36 37 //2つのEditTextに入力がされているかをチェックする 38 //あとでif文の中に入れるために真偽型で定義する 39 public boolean checkEditTextInput(){ 40 String Input1=numberInput1.getText().toString(); 41 String Input2=numberInput2.getText().toString(); 42 43 return !TextUtils.isEmpty(Input1)&&!TextUtils.isEmpty(Input2); 44 } 45 46 47 48 49 @Override 50 public void beforeTextChanged(CharSequence s,int start,int before,int after){ 51 52 53 } 54 55 @Override 56 public void onTextChanged(CharSequence s,int start,int before,int count){ 57 58 } 59 60 //テキストが変更した後に呼び出される 61 @Override 62 public void afterTextChanged(Editable s){ 63 //ここに処理内容を書いてもいいのだが、見やすくするために新しく関数を作る 64 refreshResult(); 65 66 } 67 68 private void refreshResult(){ 69 if(checkEditTextInput()){ 70 //trueならば計算を行う 71 //計算も、見やすくするために新しく関数を作ってから使う 72 int result_num=calc(); 73 74 String resultText=getString(R.string.calc_result,result_num); 75 result.setText(resultText); 76 }else{ 77 //どちらかが入力されていない状態の場合、計算欠課用の表示をデフォルトに戻す 78 result.setText(R.string.result); 79 } 80 } 81 82 private int calc(){ 83 //入力内容を取得する 84 String input1=numberInput1.getText().toString(); 85 String input2=numberInput2.getText().toString(); 86 87 //取得した入力内容を整数型に変換する 88 int numberinput1=Integer.parseInt(input1); 89 int numberinput2=Integer.parseInt(input2); 90 91 //どのラジオボタンが選択されているか確認するとともに、条件分岐 92 93 //ラジオグループのオブジェクトを取得 94 RadioGroup rg=(RadioGroup)findViewById(R.id.RadioGroup); 95 //どのラジオボタンが選択されているかを取得 96 int id=rg.getCheckedRadioButtonId(); 97 //選択されたラジオボタンのidを取得 98 RadioButton radiobutton=(RadioButton)findViewById(id); 99 100 String str=radiobutton.getText().toString(); 101 char aText =str.charAt(0); 102 103 switch(aText){ 104 case '+': 105 return numberinput1+numberinput2; 106 break; 107 case '-': 108 return numberinput1-numberinput2; 109 break; 110 case '×': 111 return numberinput1*numberinput2; 112 break; 113 case '÷': 114 return numberinput1/numberinput2; 115 break; 116 default: 117 throw new RuntimeException(); 118 } 119 120 121 } 122} 123

###試したこと
型を文字列型にして比較したり、文字型にしたり、整数型にしたりして試しましたが、うまくいきませんでした。

###補足情報(言語/FW/ツール等のバージョンなど)
android studioは最新版のはずです。
言語はJavaです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

returnするならbreakは不要です。
処理が呼び出し元に戻るので、return文の後の文は評価されません。

エラーメッセージって、言い方がとにかくお堅いですよね。
『到達不能なステートメント』→『その処理実行されないよ』という風に捉えていいかと。

投稿2017/09/18 14:56

編集2017/09/18 14:57
LouiS0616

総合スコア35660

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問