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

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

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

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

Q&A

解決済

5回答

3557閲覧

条件分岐のプログラムがわかりません。

JUN1207

総合スコア15

Java

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

0グッド

1クリップ

投稿2020/02/22 01:18

編集2020/02/23 02:28

現在、年齢と性別で条件を分岐するプログラムを書いていますが、こちらの条件がいまいちわかりません。

Java

1else if

文を使うとおもうのですがいまいちうまく行きません。

以下が現在書いているプログラムです。

Java

1package practice; 2 3import java.util.Scanner; 4 5public class Practice4 { 6 public static void main(String[]args) { 7 8 //"性別と年齢を入力し、それぞれに対応した入場料金を出力する。 9 //・boyで20歳以上の時は2000円 10 //・boyで20歳未満の時は1800円 11 //・girlで20歳以上の時は1600円 12 //・girlで20歳未満の時は1400円" 13 14 System.out.println("性別を入力してください。"); 15 16 Scanner scanner = new Scanner(System.in); 17 18 String gender = scanner.nextLine(); 19 20 if(gender.matches("boy")) { 21 System.out.println("boy"); 22 } else if (gender.matches("男")) { 23 System.out.println("男"); 24 } else if (gender.matches("girl")) { 25 System.out.println("girl"); 26 } else if (gender.matches("女")) { 27 System.out.println("女"); 28 } else { 29 System.out.println("正しく入力してください。"); 30 } 31 32 System.out.println("年齢を入力してください。"); 33 34 if (gender.matches("boy")); 35 if (gender.matches("男")); 36 int age = scanner.nextInt(); 37 } else if (age >= 20);{ 38 System.out.println("2000円"); 39 } else if (age <= 19 );{ 40 System.out.println("1800円"); 41 } 42 } 43} 44

このプログラの男性、女性、年齢によって金額を変える分岐がうまくいきません。

お分かりになる方がいらっしゃいましたらお力を貸してください。

よろしくお願いいたします。

プログラムを修正したのですが、はじめの『boy』のみうまくいき、
あとのプログラムが思ったように動作してくれません。
またプログラムが長すぎるのですが、私にはいまいちわからずお力を
貸していただきたいです。
(現在も試行錯誤中です。)

Java

1package practice; 2 3import java.util.Scanner; 4 5public class Practice4 { 6 7 public static void main(String[]args) { 8 9 //"性別と年齢を入力し、それぞれに対応した入場料金を出力する。 10 //・boyで20歳以上の時は2000円 11 //・boyで20歳未満の時は1800円 12 //・girlで20歳以上の時は1600円 13 //・girlで20歳未満の時は1400円" 14 15 System.out.println("性別を入力してください。"); 16 17 Scanner scanner = new Scanner(System.in); 18 19 String gender = scanner.nextLine(); 20 21 try { 22 if(gender.matches("boy")) { 23 System.out.println("boy"); 24 System.out.println("年齢を入力してください。"); 25 int age = scanner.nextInt(); 26 if ( age >= 20 ) { 27 System.out.println("2000円"); 28 } else if ( age <= 19 ) { 29 System.out.println("1800円"); 30 31 } else if (gender.matches("男")) { 32 System.out.println("男"); 33 System.out.println("年齢を入力してください。"); 34 if ( age >= 20 ) { 35 System.out.println("2000円"); 36 } else if ( age <= 19 ) { 37 System.out.println("1800円"); 38 39 } else if (gender.matches("おとこ")) { 40 System.out.println("おとこ"); 41 System.out.println("年齢を入力してください。"); 42 if ( age >= 20 ) { 43 System.out.println("2000円"); 44 } else if ( age <= 19 ) { 45 System.out.println("1800円"); 46 47 } else if (gender.matches("girl")) { 48 System.out.println("girl"); 49 System.out.println("年齢を入力してください。"); 50 if ( age >= 20 ) { 51 System.out.println("1600円"); 52 } else if ( age <= 19 ) { 53 System.out.println("1400円"); 54 55 } else if (gender.matches("女")) { 56 System.out.println("女"); 57 System.out.println("年齢を入力してくだい。"); 58 if ( age >= 20 ) { 59 System.out.println("1600円"); 60 } else if ( age <= 19 ) { 61 System.out.println("1400円"); 62 63 } else if (gender.matches("おんな")) { 64 System.out.println("おんな"); 65 System.out.println("年齢を入力してください。"); 66 if ( age >= 20 ) { 67 System.out.println("1600円"); 68 } else if ( age <= 19 ) { 69 System.out.println("1400円"); 70 71 } else { 72 System.out.println("正しく入力してください。"); 73 } 74 } 75 } 76 } 77 } 78 } 79 } 80 } catch(Exception e) { // エラー(Exception)発生時のみ 81 e.printStackTrace(); 82 } finally { 83 scanner.close(); 84 } 85 } 86} 87

junziさんにプログラムのコードを書いていただきそれを実際に書いて実行してみました。
が、私の考えているプログラムに今一歩足りなくて、、、、
やりたいことは以下の通りです。
わかる方がいらっしゃいましたらお力をお貸しください。

Java

1package practice; 2 3import java.util.Scanner; 4 5public class Practice41 { 6 public static void main(String[]args) { 7 8 //"性別と年齢を入力し、それぞれに対応した入場料金を出力する。 9 //・boyで20歳以上の時は2000円 10 //・boyで20歳未満の時は1800円 11 //・girlで20歳以上の時は1600円 12 //・girlで20歳未満の時は1400円" 13 14 System.out.println("性別を入力してください。"); 15 16 Scanner scanner = new Scanner(System.in); 17 18 String gender = scanner.nextLine(); 19 20 if (gender.matches("boy||男||おとこ||girl||女||おんな")) { 21 System.out.println(gender); 22 } else { 23 System.out.println("正しく入てください。"); 24 } 25 26 //性別以外の文字を入力しても「年齢入力」のコードにいってしまう。 27 //ここで性別以外の文字が入ったら次の命令に行かないようにしたい。 28 //またはもう一度『性別の入力』へループさせたい。 29 30 System.out.println("年齢を入力してください。"); 31 32 String ageStr = scanner.nextLine(); 33 int age = Integer.parseInt(ageStr); 34 scanner.close(); 35 if (gender.equals("boy") || gender.equals("男") || gender.equals("おとこ")) { 36 if (age >= 20) { 37 System.out.println("2000円"); 38 } else { 39 System.out.println("1800円"); 40 } 41 42 //ここからしたのプログラムが動作しない。 43 //「girl、女、おんな」をいれ、年齢をいれたあとに値段の表示がされない。 44 45 46 if (gender.equals("girl") || gender.equals("女") || gender.equals("おんな")) { 47 if (age >= 20) { 48 System.out.println("1600円"); 49 } else { 50 System.out.println("1400円"); 51 } 52 } 53} 54} 55} 56

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

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

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

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

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

rubytomato

2020/02/22 01:28

ソースコードは何のツールを使って書いていますか?EclipseなどのIDEを使っていればエラーが起きている箇所が明示されているはずです。 もしテキストエディタを使われているのであればIDEを使うことを検討してください。
JUN1207

2020/02/22 01:31

rubytomoatoさん こめんとありがとうございます。 ツールはEclipseをつかっております。 エラーが起きている箇所があるのですが、なぜ起きているのか? エラーに対しての問題のコメントをみてもいまいちピンときていない感じです。
m.ts10806

2020/02/22 01:38

genderの判定は正しく書けてるように見えるのに急になぜ雑になったか理解に苦しみます。 あと、エラー出てるならエラー提示するのが基本ですし、構文エラーならそれこそ構文の基本を見直すだけでは?
JUN1207

2020/02/22 13:21

m.ts10806さん いつもありがとうございます。 おっしゃる通りです。 構文の基本を見直してみます。
dodox86

2020/02/23 03:14

> junziさんにプログラムのコードを書いていただき junziさんの回答に限りませんが、それぞれいただいた回答の内容を理解されていますか。 > 私の考えているプログラムに今一歩足りなくて、、、、やりたいことは以下の通りです。 ひとつひとつていねいにやりましょう。ifやelseで使っているカッコの位置(インデント位置)を整理すれば、何がいけないか分かるはずです。分からなかったら。。。更に基本に戻る必要があるかもしれません。
JUN1207

2020/02/23 12:24

dodox86さん ひとつひとつ丁寧に。ありがとうございます。 ゆっくり一つずつ行えば問題なくできるプログラムのようなので 作成してみます。
m.ts10806

2020/02/23 12:27 編集

>ゆっくり一つずつ行えば問題なくできるプログラムのようなので これに限らず、どのようなロジックもゆっくりと1つずつ行えば問題なくできるので、単に思い込みが強いだけかと思います。 思った通り動かすなんて、そのプログラムを開発した人ですら無理です。
guest

回答5

0

ベストアンサー

とりあえず直してみましたが、考慮しないといけない点はまだまだありますね。
例えば-20才とか入力されてもいいのかな?
あくまで参考程度に書いているので、何をしているのかよく読んで考えてみてください。

java

1package practice; 2 3import java.util.Scanner; 4 5public class Practice4 { 6 public static void main(String[] args) { 7 8 //"性別と年齢を入力し、それぞれに対応した入場料金を出力する。 9 //・boyで20歳以上の時は2000円 10 //・boyで20歳未満の時は1800円 11 //・girlで20歳以上の時は1600円 12 //・girlで20歳未満の時は1400円" 13 14 String gender = null; 15 int age = 0; 16 String ageStr = null; 17 Scanner scanner = new Scanner(System.in); 18 do { 19 if (!(gender == null)) { 20 System.out.println("正しく入力してください。"); 21 } 22 System.out.println("性別を入力してください。"); 23 24 gender = scanner.nextLine(); 25 } while (!gender.matches("boy||男||girl||女")); 26 System.out.println(gender); 27 28 do { 29 System.out.println("年齢を入力してください。"); 30 scanner = new Scanner(System.in); 31 ageStr = scanner.nextLine(); 32 try { 33 age = Integer.parseInt(ageStr); 34 break; 35 } catch (NumberFormatException e) { 36 System.out.println("正しく入力してください。"); 37 } 38 } while (true); 39 40 scanner.close(); 41 if (gender.equals("boy") || gender.equals("男")) { 42 if (age >= 20) { 43 System.out.println("2000円"); 44 } else { 45 System.out.println("1800円"); 46 } 47 } else if (age >= 20) { 48 System.out.println("1600円"); 49 } else { 50 System.out.println("1400円"); 51 } 52 } 53}

投稿2020/02/23 08:56

junzi

総合スコア279

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

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

JUN1207

2020/02/23 12:22

junziさん ありがとうございます。 このコードで何をしているのかをじっくり読ませて頂きます。 while 文はまだ勉強できていないのでこちらのコードを参考に色々と調べて学習します。
JUN1207

2020/02/26 13:14

junziさん おそくなりました。 私なりに理解しました。 『do..while文』=『繰り返し処理。』 『do{ 実行する文1; 実行する文2; ... }while (条件式);』 『null』=『何もない、何も示さないもの』ITでは頻繁に使用する。 『!』=『エクスクラメーションマーク』=『否定』 『break;』=『break文が実行されるとブロックを抜けて次の処理へ移る。』 『try-catch文』=『例外が発生する可能性がある処理に使うもの』 『try { 例外が発生する可能性のある処理 } catch (例外の型 引数) { 例外が発生した場合の処理(例外が発生しなければ行われない処理) } finally { 例外の有無に関わらず、最後に必ず実行される処理 }』 今回のプログラムはこれらを形式通りに使用することにより、プログラムを実行することができる。 と認識しました。 これらの使い方はネットの記事で勉強したり、プログラムを書いて行く中で学習を深めたいと思います。 ありがとうございます。
guest

0

Java

1package practice; 2 3import java.util.Scanner; 4 5public class Practice4 { 6 public static void main(String[] args) { 7 8 //"性別と年齢を入力し、それぞれに対応した入場料金を出力する。 9 //・boyで20歳以上の時は2000円 10 //・boyで20歳未満の時は1800円 11 //・girlで20歳以上の時は1600円 12 //・girlで20歳未満の時は1400円" 13 14 System.out.println("性別を入力してください。"); 15 16 Scanner scanner = new Scanner(System.in); 17 18 String gender = scanner.nextLine(); 19 20 if (gender.matches("boy||男||girl||女")) { 21 System.out.println(gender); 22 } else { 23 System.out.println("正しく入力してください。"); 24 } 25 26 System.out.println("年齢を入力してください。"); 27 28 String ageStr = scanner.nextLine(); 29 int age = Integer.parseInt(ageStr); 30 scanner.close(); 31 if (gender.equals("boy") || gender.equals("男")) { 32 if (age >= 20) { 33 System.out.println("2000円"); 34 } else { 35 System.out.println("1800円"); 36 } 37 } else if (age >= 20) { 38 System.out.println("1600円"); 39 } else { 40 System.out.println("1400円"); 41 } 42 } 43}

投稿2020/02/22 18:25

junzi

総合スコア279

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

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

JUN1207

2020/02/23 02:21

junziさん コードを書いていただきありがとうございます! こちらのコードで書かせていただきました。 が、私が考えているコードに今一歩足りなくて、またお力をお借りしてもよろしいでしょうか?
m.ts10806

2020/02/23 11:49

ここまでのコードだしてくれてるのであればなぜ自分でやろうと思わないのでしょうか。 「俺が考えたさいきょうのコード」とか使えない考えを遂行しようとするのはやめてください。 プログラムは書いた通りにしか動きません。 この回答のコードが理解できてないのであれば正直に申し出ればまだアドバイスの余地はあるでしょうけど、そうでないのなら「勝手にして」としか言えないと思います。
JUN1207

2020/02/23 12:17

m.ts10806さん プログラムは書いた通りにしか動きません。 仰る通りです。 正直に申し上げますと、なぜ私が書いたコードで思い通りに実行してくれないのかかわからず、書いて頂いたコードがなぜ正常に実行されるのかがわからずにいろいろなサイトを参考にして調べている状況です。 決して、「俺が考えた最強のコード」とは思っておらず、書いて頂いたコードがなぜこのように動くのかを一つ一つ理解しながらコードを書いています。 わからなければ調べる、をやり、いまいちわからず皆さんに質問をしています。
m.ts10806

2020/02/23 12:25

ですから、思うとおりに動くのではなく、書いた通りに動くからです。 そして、「なぜこのように動くのかを一つ一つ理解しながらコードを書いています」と言うのであれば、 junziさんの今回の回答のコードの理解度を何も伝えず「私の考えてるコードに足りない」と次を求めるのは間違っています。
JUN1207

2020/02/23 12:34

m.ts10806さん プログラムは思う通りではなく、書いた通りに動く。 確かにそうだなと強く感じました。 「なぜこのように動くのかを一つ一つ理解しながらコードを書いています。」 この言葉には間違いはありません。 m.ts10806さんの仰る通りかもしれません。 どこまで理解したのかを伝えないと、教えた方も「本当に理解しているの?」と疑問を持ちますし、お互いがわからないままになりますよね。 ありがとうございます。
m.ts10806

2020/02/23 12:35

コメントを読んだ感想を述べるのはいつでもいいので、 きちんと問題を解決に向けて進めてください。
guest

0

コード中段あたりのif、else if、elseは{と}で正しく囲んでいるのでエラーは出ていませんね。
また、;も無いのでエラーは出ていません。
値の代入や宣言、メソッドなどでは末尾に;を付けますがifやwhileやforなどの{と}で囲むものの末尾(}の後ろ)には;は付けません。(条件式)の後ろにも付けません。
そういうルールとなっているのでそれに従うだけなのです。

java

1if (条件式) { 2 //条件が一致した場合のみこの中を実行 3}

java

1if(gender.matches("boy")) { // if文の開始カッコ{ 2 System.out.println("boy"); // genderが(入力値が)boyの場合boyと表示 →実行後は [A] へ 3} else if (gender.matches("男")) { // if文の終了カッコ} else if文の開始カッコ{ 4 System.out.println("男"); // genderがboyでは無かったが男であった場合男と表示 →実行後は [A] へ 5} // [A] (}の後ろ) // }はelse if文の終了カッコ 6

では、問題になるのが終盤あたりです。

java

1if (gender.matches("boy")); 2if (gender.matches("男")); 3int age = scanner.nextInt(); 4} else if (age >= 20);{ 5System.out.println("2000円"); 6} else if (age <= 19 );{ 7System.out.println("1800円"); 8}

これをこの様にすると分かりやすいかもしれません。

java

1if (gender.matches("boy")) //genderはboyですか? 2 ; //genderがboyなら何もしない(;だけなので)、boyで無くても当然何もしない。 そしてif文は完結 3if (gender.matches("男")) //全く新しいif文の判定。genderは男ですか? 4 ; //genderが男なら何もしない(;だけなので)、男で無くても当然何もしない。 そしてif文は完結 5int age = scanner.nextInt(); //年齢を入力 6 7} else if (age >= 20);{ // ? 突然 } から始まりましたね。この行以前でif文も完結してるのでelseから始まるのはおかしい。よってエラー。 8 // )と{の間に;がありますがif文のルール上使えるようになっていないので;を消す 9System.out.println("2000円"); // 2000円と表示 10} else if (age <= 19 );{ // ;が付いている以外は良いが1つ前のelse if文の影響を受けて連鎖してエラー。 11 // )と{の間に;がありますがif文のルール上使えるようになっていないので;を消す 12System.out.println("1800円"); // 1800円と表示 13}

また、すでに回答にありますがif文などは条件に一致したもののみ実行するものが1行で済む場合に{と}は省略できます。1行とは、if文の次の行や末尾につけたプログラムが対象です。
逆にその1行を書かなければそれはそれでエラーが出ます。

java

1if (gender.matches("boy")) 2 System.out.println("boyです"); 3 4または 5 6if (gender.matches("boy")) System.out.println("boyです"); 7

エラーが出てもその行のプログラムが間違っているとは限らず、その行より前のどこかで書き方が間違っている事が原因でエラーが出ている場合もあります。

補足

補足しておきましたので参考に

java

1if(gender.matches("boy")) { 2 System.out.println("boy");              //boyのみ実行される 3 System.out.println("年齢を入力してください。"); //boyのみ実行される 4 int age = scanner.nextInt(); //boyのみ実行される 5 if ( age >= 20 ) { //boyのみ実行される 6 System.out.println("2000円"); //boyで年齢が20以上のみ実行される 7 } else if ( age <= 19 ) { //boyで年齢が20以上では無かった(事実上19以下)場合if文を実行 8 System.out.println("1800円"); //boyで年齢が20以上では無かったものをさらに19以下か 9 //判定し19以下であった場合実行される。 10 } else if (gender.matches("男")) { //int型で20以上ではなく19以下ではない数字はないので 11 //事実上これ以下は実行されることは無い 12 System.out.println("男"); 13 System.out.println("年齢を入力してください。"); 14 if ( age >= 20 ) { 15 System.out.println("2000円"); 16 17//***間は省略*** 18 19} //後からまとめてカッコで閉じると意味が変わってきます。 20} //閉じるべき所で閉じる必要がある様です。 21} 22} 23} 24} 25} //boy以外はここへ飛ぶ。

では、こっちのプログラムの場合はどうでしょう。

java

1if (gender.equals("boy") || gender.equals("男") || gender.equals("おとこ")) { 2 if (age >= 20) { 3 System.out.println("2000円"); 4 } else { 5 System.out.println("1800円"); 6 } 7 //ここからしたのプログラムが動作しない。****どこかで見た流れですね**** 8 //「girl、女、おんな」をいれ、年齢をいれたあとに値段の表示がされない。 9 if (gender.equals("girl") || gender.equals("女") || gender.equals("おんな")) { 10 if (age >= 20) { 11 System.out.println("1600円"); 12 } else { 13 System.out.println("1400円"); 14 } 15 } 16} 17// カッコの位置が悪いのでこの様なプログラムになった様です。本来はどこの間に}が必要だったのか 18// girlの場合はどの行へ飛んでしまうのか 19 20if (条件式) { 21 //条件が一致した場合のみこの中を実行 22}

何故それぞれの行の先頭の位置を落としているのかを考えてみてください。
質問者さんもこうなるだろうと思い先頭の位置を調整されているのだと思いますのでご自身のプログラムと見比べてみてください。

投稿2020/02/22 08:31

編集2020/02/23 14:18
shinami

総合スコア334

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

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

0

if 文の誤りはすでに指摘されているのと、過去の質問で解決済みになっているので割愛(なぜ忘れたのでしょうか?)

javac の結果では以下のように「illegal start of type ⇒ 不正な開始または入力」とでてブロックが誤っているコンパイルエラーが出ています。
ブロックの記述を見直してください。

Main.java:35: error: illegal start of type } else if (age >= 20);{ ^ Main.java:35: error: <identifier> expected } else if (age >= 20);{ ^ Main.java:37: error: illegal start of type } else if (age <= 19 );{ ^ Main.java:37: error: <identifier> expected } else if (age <= 19 );{ ^ Main.java:41: error: class, interface, or enum expected } ^ 5 errors

まあ else if のはなしだけ

じつは javaでは「else if」は二つの構文の組み合わせです。

if ( 判定1 ) { } else if ( 判定2 ) { } else { }

は 単一行の場合 { } を省略可能であるという仕様があります(大半の言語にあります。)

if ( 判定1 ) { } else { if ( 判定2 ) { } else { } }

の省略記法になるのです。

投稿2020/02/22 02:03

編集2020/02/22 02:07
退会済みユーザー

退会済みユーザー

総合スコア0

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

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

JUN1207

2020/02/23 02:19

asahina1979さん いつもありがとうございます。 「 else if 」文について理解が深まりました。 書き方はふた通りあるけれどどっちを使ってもいいってことですね! 省略記法は使いやすそうです!
guest

0

if文の基本を復習しましょう。

if (gender.matches("boy"));

最後に余計な;が付いています。ほかにも複数。

投稿2020/02/22 01:26

otn

総合スコア84633

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

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

JUN1207

2020/02/22 01:33

otnさん コメントありがとうございます。 余計な『;』 がたくさんついておられるとのことですが、 『;』がないと文を閉じることができないと認識しております。 (Eclipsでもエラーが出てしまします。)
otn

2020/02/22 01:53 編集

どこまでが「文」かの認識が間違っているのでしょう。 文末には必ず ; を付けますが、文末でないところに ; を付けると ・エラーになる ・そこで文の終わりだと認識されてしまう(今回はこっちのケース) です。 ; を取る取らないの話ではなく、 > if文の基本を復習しましょう。 です。そうすると、文の終わりがどこか、わかると思います。
JUN1207

2020/02/22 13:26

otnさん 詳しくご指摘いただきありがとうございます。 if 文の勉強、こちらを勉強し直します。 基本がわかっていないから、こう言う質問になってしまうのだとわかりました。 ありがとうございます!
thkana

2020/02/23 04:17

> 文末には必ず ; を付けます 違うんじゃないでしょうか。 文にはいくつか種類がありますが、その一つが 式 ; であることは言えます。しかし、例えば「if文」は、 if(論理式) 文 [else 文] これ全体が一つの文であって、文の終わりが;であるわけではありません。典型的には、{ }で囲うと複数の文を一つの文として扱えるので if(論理式){ 文 文 ...} という形式での記述が出来ますが、これは全体でif文という一つの文を構成しています。もちろん、終端に;は付けません。 (余談。上記のようなことなので、if文等で「文が一つなら{}を省略できる」という説明をするならそれは実用上はそう言うのもありかも知れませんが文法の説明としては誤りです。) 今回の「余計な;」は、;があることで空文が構成されてしまったため、 if(論理式) 空文 まででif文が終わってしまうということです。;はあくまで空文の終わりの役割。結果としてif文全体が終わるのはそうなんですが。 まぁ、質問者さんのような初心者でここまで把握する必要はないかも知れませんが...
otn

2020/02/23 08:10 編集

thkanaさん ご指摘の通り不正確だったと思います。 内部に文を含むような構造を持った文の最後には付けないですね。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.47%

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

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

質問する

関連した質問