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

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

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

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

Q&A

解決済

6回答

1535閲覧

エラーの解決方法がわからなくて困ってます。

退会済みユーザー

退会済みユーザー

総合スコア0

Java

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

0グッド

1クリップ

投稿2021/07/28 12:45

編集2021/07/28 14:01

Java

1import java.util.*; 2 3public class SeisekiMethod { 4 public static void main(String[] args){ 5 for(int score = 105 ; score > -5 ; score -= 5){ 6 check(score); 7 } 8 } 9} 10private static void check(int score){ 11 if( 90 <= score && score <= 100 ){ 12 System.out.println("点数" + score + "は秀です"); 13 }else if( 80 <= score && score <= 89 ){ 14 System.out.println("点数" + score + "は優です"); 15 }else if( 70 <= score && score <= 79 ){ 16 System.out.println("点数" + score + "は良です"); 17 }else if( 60 <= score && score <= 69 ){ 18 System.out.println("点数" + score + "は可です"); 19 }else if( score <= 59 ){ 20 System.out.println("点数" + score + "は不合格です"); 21 }else{ 22 System.out.println("点数は" + 0 + "以上から" + 100 +"以下を入力してください"); 23 } 24}

10,13,15,17,19,21,23行目にエラーが出ます。
エラーの内容はすべて同じで
「Main.java:10:error:class,interface,or enum expected」です。

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

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

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

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

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

y_waiwai

2021/07/28 12:59

エラーが出たなら、エラーメッセージを提示しましょう エラーメッセージは、いらぬ翻訳省略しないで、出たそのママをコピペで提示してください また、このままではコードが読みづらいので、質問を編集し、<code>ボタンを押し、出てくる’’’の枠の中にコードを貼り付けてください
m.ts10806

2021/07/28 14:06

質問編集されたようですが回答に変更はありません。Javaの基本構造を成していません。
BeatStar

2021/07/30 01:59

先に基礎からやりましょう
guest

回答6

0

このコードが全てならそもそもJavaの基本構造を成していません。
オブジェクト指向言語なので、メソッドだけ定義と言うのはできません。
メソッドはクラスに所属する機能です。

入門系の書籍1冊きちんと通されたほうが良いです。

既に指摘がある通りここで答えだけもらっても意味がないですし、
そもそもこのコードだけ提示されても仕様が不明なので他者には「答え」は出せません。

投稿2021/07/28 13:38

m.ts10806

総合スコア80875

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

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

0

過去質問は参考になりませんか?
class,interfeceまたはenumがありません

エラーメッセージで検索するようにしましょう。
今回の場合、class,interface,or enum expectedで検索するとヒットします。
初心者も熟練者も関係なくやることなので、習慣づけてください。

投稿2021/07/29 02:38

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

0

ベストアンサー

まずJavaの基本としてメソッドに当たる部分、つまり

java

1private static void check(int score){ 2 //Javaのメソッド 3} 4```上記のものは**クラスの中に書く**のが基本です。 5 6ちなみに今回で言うクラスに当たる部分は 7```java 8public class SeisekiMethod { 9 //クラス 10} 11```です。

投稿2021/07/30 01:21

編集2021/07/30 01:46
mamemaru

総合スコア56

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

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

BeatStar

2021/07/30 01:41

> 上記のものはクラスのMainメソッドの中に書くのが基本です 違うと思いますが…
mamemaru

2021/07/30 01:59

間違っていましたね、、、汗 ご指摘ありがとうございます。
guest

0

エラー文はよく読みましょう。コードも読み直しましょう。

まあ、最初のうちはデバッグが苦痛だと思いますが、
でも、「プログラミングはデバッグの方が本番」、
というくらいの気持ちで真剣にのぞみましょう。


java

1class SeisekiMethod

不自然な命名ですが、クラスとメソッドを混同していますね。
クラスの中からメソッドを呼んでいるはずなので、
インデントの階層を見直してみましょう。

java

1 if( 90 <= score && score <= 100 ){ 2 System.out.println("点数" + i + "は秀です");

もうひとつ、「i」って変数が突然出てきますが、どこで宣言してますかね?

投稿2021/07/28 13:43

LLman

総合スコア5592

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

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

退会済みユーザー

退会済みユーザー

2021/07/30 01:36

> 「i」って変数 質問編集前の指摘ですね。
guest

0

それはそうでしょ…

コードをちゃんと読んでください

それとエラーメッセージもちゃんと読みましょう

エラーメッセージにヒントが隠されています。

どうしてもわからなければggりましょう

ヒントとしては

Main.java:10:error:class,interface,or enum expected [訳] Main.javaの10行目にエラーあり。 クラス,インターフェースまたはenumが望まれますよ?

これの場合、『クラス等の外にメソッド等を定義している』ことが多いです。

あるいは開始ブロックと終了ブロックの数が合わないとか。
(正式な言い回しはわかりませんが)

{}の数を数えたり、『このメソッドはどこに属しているか』とかを考えてみてください。

答えを教えてもあまり意味がないのであえて伏せますが。

投稿2021/07/28 13:31

BeatStar

総合スコア4962

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

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

0

java

1 2import java.util.*; 3 4public class SeisekiMethod { 5 public static void main(String[] args){ 6 for(int score = 105 ; score >= -5 ; score -= 5){ 7 check(score); 8 } 9 } 10 11 private static void check(int score){ 12 if( 90 <= score && score <= 100 ){ 13 System.out.println("点数" + score + "は秀です"); 14 }else if( 80 <= score && score <= 89 ){ 15 System.out.println("点数" + score + "は優です"); 16 }else if( 70 <= score && score <= 79 ){ 17 System.out.println("点数" + score + "は良です"); 18 }else if( 60 <= score && score <= 69 ){ 19 System.out.println("点数" + score + "は可です"); 20 }else if( 0 <= score && score <= 59 ){ 21 System.out.println("点数" + score + "は不合格です"); 22 }else{ 23 System.out.println("点数は" + 0 + "以上から" + 100 +"以下を入力してください"); 24 } 25 } 26}

投稿2021/08/01 09:33

編集2021/08/02 10:02
退会済みユーザー

退会済みユーザー

総合スコア0

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

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

m.ts10806

2021/08/02 01:52

解決は良いとしてせめてインデントを。 インデントがめちゃくちゃなことでブロック、スコープが区別しづらくなりそれによって誤認識によるミスが多発します。 今回のこともインデントちゃんとしていたら自分で気づけたかもしれませんよ。
dodox86

2021/08/02 02:11

回答のコードについて: 一応指摘させていただきますと、check(-1)などと入力すると「点数-1は不合格です」になります。 求めているところは「点数は0以上から100以下を入力してください」と出力することではないでしょうか。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問