Javaプログラミングの初歩的な質問

このQ&Aのポイント
  • Javaプログラミング初心者がコンパイルエラーに困っています。エラーメッセージは「class、interface、または enum がありません」と表示されます。質問内容を詳しく教えてください。
  • Javaプログラミング初心者がimport文について質問しています。現在は「import java.util.Scanner;」と記述しているが、参考書では「import java.io*;」となっています。これらの違いと正しい利用法について教えてください。
回答を見る
  • ベストアンサー

かなり初歩的なプログラミング(Java)についての質問です。

かなり初歩的なプログラミング(Java)についての質問です。 お恥ずかしながら、かなり初歩ではありますが躓いております・・・。 import java.util.Scanner; class OddEven{ public static void main(String args[]){ Scanner sc = new Scanner(System.in); System.out.println("整数を入力してください。"); String str1=sc.next(); int i = Integer.parseInt(str1); if(i%2==0){ System.out.println(i+"は偶数です。"); } else { System.out.println(i+"は奇数です。"); } } } } 以上のような内容なのですがコンパイルしようとすると 「OddEven.java:21: class、interface、または enum がありません。」 といったエラーがでます。 文法などは間違ってない!・・・と思うのですが・・・。 ご指摘していただきたいです。 あともう一つ質問です。じつはこっちが聞きたかったり・・・。 上記のソースコードを見ていただければわかると思いますが 「import java.util.Scanner;」 と最初の部分に記述していますが、これは授業で教師が教えてくれたもので手持ちの参考書では 「import java.io*;」 と記述されています。(もしかして今回のエラーもここから・・・?) この二つの違いは・・・聞いても正直分かりそうにはないので どっちを使っていけばいいか、などを教えていただきたいです。

  • Java
  • 回答数1
  • ありがとう数3

質問者が選んだベストアンサー

  • ベストアンサー
  • salsberry
  • ベストアンサー率69% (495/711)
回答No.1

> OddEven.java:21: class、interface、または enum がありません。 中括弧 { } の数は合っていますか? > import java.io*; *を使った書き方をするなら、ioと*の間にピリオドが必要です。

nevanevaha
質問者

お礼

うぉおおお!完全に見落としてました! 何回も数えてはいたのですが、お恥ずかしい・・・! import java.io.* ですね。 重ね重ねありがとうございました!

関連するQ&A

  • javaについて

    以下のようにキーボードから入力していくプログラムを試行しているのですが、エラーが出てくるので行き詰まっています。 理想的にはキーボードに”あいう”エンター”えおか”エンターと打ち込んだら str[0]=あいう str[1]=えおか と表示させていきたいのですが、よろしくお願いします。 import java.io.*; import java.lang.*; import java.net.*; import java.awt.*; class gugu2 { public static void main(String[] args) throws IOException { int i=0; while(i<2){ System.out.println("キーワード入力"); BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String input = br.readLine(); char str[] = input.toCharArray(); System.out.println("キーワードは" + str[]); i=i+1; } for(i=0;i<2;i++){ System.out.println(str[]); } } } これがエラー表示です。 gugu2.java:17: '.class' がありません。 System.out.println("キーワードは" + str[]); ^ gugu2.java:21: '.class' がありません。 System.out.println(str[]); ^ エラー 2 個

    • ベストアンサー
    • Java
  • Javaの初心者です

    Javaの勉強をしています。 以下のコードを作成しました。 import java.util.*; public class Main { public static void main(String[] args) { int flg = 0; Scanner sc = new Scanner(System.in); String str = sc.next(); String data = sc.next(); if (data == str) { flg = 1; } if (flg == 1) { System.out.println("YES"); } else { System.out.println("NO"); } } } 標準入力に A A を入力して実行しました。 YESと表示されるのを期待していたのですが、NOと表示されます。 何が悪いのでしょうか?

    • ベストアンサー
    • Java
  • プログラミング(Java)について

    学校の課題で考えても、分からなかったので質問させてください。 下のプログラムを以下のように変更したいのです。 (1)正解の数から±20以下まで接近した時は「小さすぎます、でもあと少しです!!」または「大きすぎます、でもあと少しです!!」というメッセージを表示する。 (2)正解が出るまでに何回数字を入力したか数えて、正解が出た後で「正解が出るまで○○回かかりました」というメッセージを表示する。 (3)さらにその回数が5回以下だったら「すばらしい!」、その回数が10回以上だったら「間が鈍いですね」、5回と10回の間だったら「普通です」というメッセージを表示する。 import java.util.Scanner; public class kazuate{ public static void main(String args[]){ Scanner kbd = new Scanner(System.in); int x; boolean flag = true; int seikai = (int)(Math.random() * 1000); System.out.println("数当てゲームを始めます"); System.out.println("0~999の数字を入力してください"); while(flag){ x = kbd.nextInt(); if (x >= 0 && x < seikai){ System.out.println("小さすぎます、もう1回!"); }else if(x > seikai && x <= 999){ System.out.println("大きすぎます、もう1回!"); }else if(x == seikai){ System.out.println("正解です!"); flag = false; }else{ System.out.println("入力するのは0~999です。やり直してください"); } } } よろしくお願いします。

  • Scanner と BufferedReader

    javaでキーボードからの入力を格納するやつがあって、 Scanner と BufferedReaderのやり方がありますが、これはどう違うのでしょうか? それとも全く同じでしょうか? たとえば、 ■一つ目 import java.io.*; class Sample3{ public static void main(String[] args) throws IOException{ BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); System.out.println("文字列を入力してください"); String str1=br.readLine(); System.out.println("検索文字を入力してください"); String str2=br.readLine(); char ch=str2.charAt(0); int num=str1.indexOf(ch); if(num !=-1) System.out.println(str1+"の"+(num+1)+"番目に「"+ch+"」が見つかりました"); else System.out.println(str1+"に「"+ch+"」はありません"); } } ■二つ目 import java.util.Scanner; class Sample4{ public static void main(String[] args){ Scanner stdIn=new Scanner(System.in); System.out.println("文字列を入力してください"); String str1=stdIn.nextLine(); System.out.println("検索文字を入力してください"); String str2=stdIn.nextLine(); char ch=str2.charAt(0); int num=str1.indexOf(ch); if(num !=-1) System.out.println(str1+"の"+(num+1)+"番目に「"+ch+"」が見つかりました"); else System.out.println(str1+"に「"+ch+"」はありません"); } } これら2つは全く同じ実行結果が得られると思うのですが、 Scanner と BufferedReader の使い分けるべき場合などあるのでしょうか?

    • ベストアンサー
    • Java
  • javaでif文を使ってわかりません

    javaでif文を使ってわかりません わからないのはキーボード入力で0なら「0です」と偶数・奇数ならそれぞれ偶数・奇数と表示するif文のプログラムです。 とりあえず import java.util.Scanner; public class OddEven2 { public static void main(String[] args){ Scanner sc = new Scanner(System.in); int str = sc.nextInt(); if(str==0) { System.out.println("0です"); } } } まではできました けど何億とある数字をキーボード入力で奇数なら奇数だけ表示させるとはどういうことでしょうか? 条件処理でこの値以上この値以下でなわけないし 糸口さえ掴めない状態です ヒントをいただけるとありがたいです

  • なぜIDの中身が出力しないんでしょうか?

    今回もエラーもなく例外処理もありませんただ出力しないだけです キーボード入力と"20が等しいならHashMap型のIDの中身"山田"を表示、同様にキーボード入力と"10"が等しいならHashMap型のIDの中身"小林"を出力。 ソースコードはこちらです⇓ import java.util.HashMap; import java.util.*; class Sample7 { public static void main(String[] args){ System.out.println("IDを入れてください"); HashMap<String, String> ID=new HashMap<String,String>(); ID.put("20", "山田"); ID.put("10", "小林"); ID.put("40", "大林"); ID.put("90", "斉藤"); ID.put("1", "井上"); Scanner sc= new Scanner(System.in); String str=sc.nextLine(); while(true){ if(str=="20")//キーボド入力が20と等しいなら"山田"の出力する判定 System.out.println(ID.get(20)); break; } } } できたら早めの回答をお持ちしています

    • ベストアンサー
    • Java
  • [至急!]Javaのプログラミング

    野球のBSOカウンタを作ろうとしているのですが、エラーが出ないもののうまく動きません。動作としてはsと入力したらSのカウンタに「〇」を表示、といったことをO(アウト)カウンタが3つになるまで行うプログラムなのですが、入力と出力の両方をうまくループすることが出来ません。分かる方がいたら教えてください。私が作ったものは下のものです。これを改良して作っていただけると助かります。 import java.io.*; public class test1 { public static void main(String[] args) throws IOException { BufferedReader br=new BufferedReader(new InputStreamReader(System.in)); //String str=br.readLine(); //char hantei=str.charAt(0); int sc=0,bc=0,oc=0; while(oc<3){ String str=br.readLine(); char hantei=str.charAt(0); if(hantei=='s') { sc=sc+1; if(sc==3) oc=oc+1; sc=0; bc=0; } else if(hantei=='b') { bc=bc+1; if(bc==4) sc=0; bc=0; } else if(hantei=='o') { oc=oc+1; sc=0; bc=0; } else { System.out.println("入力が違います。"); } } System.out.print("B "); for(int i=0;i<=bc;i++){ System.out.print("〇"); } System.out.println(""); System.out.print("S "); for(int i=0;i<=sc;i++){ System.out.print("〇"); } System.out.println(""); System.out.print("O "); for(int i=0;i<=oc;i++){ System.out.print("〇"); } System.out.println(""); } } 出力例 s(入力) B S 〇 O s(入力) B S 〇〇 O s(入力) B S O 〇 これをアウトカウントが3つになるまで行うプログラムです。

    • ベストアンサー
    • Java
  • java プログラミングについて

    独学でjavaに挑戦中ですが、書店で購入した本のソースプログラムを少し変えたいのですが、ご教授をお願いします。数当てゲームのプログラムで、一つの設問を正解すると終了するゲームですが、複数の設問を設定したいのです、質問がうまく伝わるか不安ですがよろしくお願いします、プログラムを少しだけ書いておきます。 import java.io.*; class Mojiretuate { public static void main(String[] args) throws IOException { String str = "こんにちは";  /*質問箇所*/ String str2; BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); System.out.println("文字列当てゲームです。"); System.out.println("答えは何かのあいさつです。"); for(;;){ System.out.println("\n入力:"); str2 = br.readLine(); System.out.println("入力文字列の長さ:" + str2.length()); if(str.equals(str2)){ System.out.println("正解です!"); break; } 

    • ベストアンサー
    • Java
  • javaでCSVの中身から最大値を表示したい

    タイトルの通りなのですが、javaのプログラムでCSVの中の少数を読み込み、そこから最大値を表示したいのです。 CSVの中身は 10.1,20.2,30.3,40.4,50.4 100.1,200.2,300.3,400.4 という半角の少数がカンマで区切られた状態になっています。 import java.util.Scanner; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.BufferedReader; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStreamReader; public class test { public static void main(String args[]) throws NumberFormatException, IOException{ System.out.println("csvのファイル名を入力"); Scanner sc = new Scanner(System.in); String str = sc.next(); BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(str))); String line; while((line=br.readLine())!=null){ String[] sp = line.split(","); double sum=0;//合計値格納用 for(int i=0;i<sp.length;i++){ sum += Double.parseDouble(sp[i]); } System.out.println(line+"の合計値は"+sum); } br.close(); } } 上記のプログラムは、CSVの中身の各行の合計値を算出するもので、これを元に各行の最大値を算出したいのですが、どうしても比較演算子を使用しての算出がうまくいきません。 どなたかプログラムに詳しい方がいましたら、ご教授いただけると助かります。 つたない文章ですがよろしくお願いします。

    • ベストアンサー
    • Java
  • java 入力命令

    以下うまくどうさしません、教えてください。 public class Main { public static void main(String[] args){ System.out.println("名前"); String name = new java.util.Scanner(System.in) .nextLine(); System.out.println("年齢"); int age = new java.util.Scanner(System.in) .nextInt(); System.out.println (age + name); } }

専門家に質問してみよう