• 締切済み

countに実行した回数をいれたいです。

javaのカウント回数について質問させて頂きます。 ユーザーから数字を入力した回数をint countに格納して 表示したいのですがコンパイルは通りますが実行できません。 elseの中にSystem.out.printlnした文字も表示されずどうやら elseを通ってなくatr[i]にも値が格納されてないようです。 調べた限りではわからなく宜しければアドバイスやご指摘をお願い致します。 import java.io.*; import java.util.Arrays; class last { public static void main(String[] args) throws IOException { int atr[]; atr = new int[25]; int count = 0; int your_plan[][] = new int[300][144]; //1日のスケジュール String dayplan; BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); while(true){ //絶対に通る System.out.println("数字を選択してください。"); String str = br.readLine(); int res = Integer.parseInt(str); if(res == 0){ System.out.println("選択終了です。"); break; } else{ atr[count] = res; } count++; System.out.println(count); }

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

みんなの回答

  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.1

どうやって確認したのですか? 添付したのは、元のプログラムに ・{}が対応できてなかったのを追加 ・確認用にSystem.out.printlnを追加 しただけで、それ以外は元のままです。 これで動かしたところ、ちゃんと入っているようですが? > int your_plan[][] = new int[300][144];//1日のスケジュール > String dayplan; と、ここで使われていない変数があります。 atr[]には正常に入っていて、それを使うところが間違ってる、ということは無いですか? import java.io.*; import java.util.Arrays; class last { public static void main(String[] args) throws IOException { int atr[]; atr = new int[25]; int count = 0; int your_plan[][] = new int[300][144];//1日のスケジュール String dayplan; BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); while(true) { //絶対に通る System.out.println("数字を選択してください。"); String str = br.readLine(); int res = Integer.parseInt(str); if(res == 0) { System.out.println("選択終了です。"); break; } else { atr[count] = res; System.out.println("atr[" + count + "] = " +res); } count++; System.out.println("Count= " + count); } System.out.println("結果"); for( int i = 0 ; i < count ;++ i){ System.out.println("atr[" + i + "] = " + atr[i]); } } }

関連するQ&A

  • javaで配列の格納をしたいです。

    配列の格納がうまくいきません。 javaについて質問させて頂きます。 ユーザーが数字を入力し配列 atr[ i ]に格納され 配列 v[ i ] に v[ 0 ] = count ... v[ 143 ] = count ... v[ 144 ] = count - 1 ... v[ 287 ] = count - 1 ... ... v[ count-288 ] = 2 ... v[ count-145 ] = 2 ... v[ count-144 ] = 1 ... v[ count-1 ] = 1 と、格納されるようなプログラムを作っています。 for文で作ろうと考えたのですが count, count-1 , ... 3, 2, 1と値を入れようと思いましたがうまくコンパイルが通りませんでした。 エラーは以下になります。 a.java:48: シンボルを見つけられません。 シンボル: メソッド readLine(int) 場所 : java.io.BufferedReader の クラス value = br_v.readLine(atr[i]); もし宜しければアドバイスやご指摘を頂けませんでしょうか。 説明も拙い部分がありますが宜しければお願いします。 import java.io.*; import java.util.Arrays; class a { public static void main(String[] args) throws IOException { int atr[]; atr = new int[25]; int count = 0; BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); while(true){ //絶対に通る String str = br.readLine(); int res = Integer.parseInt(str); if(res == 0){ break; } else{ atr[count] = res; } count++; } for(int i=0; i<count; i++){ System.out.println(atr[i] + "が、選択されました。"); } int v[] = new int[25*144]; String value; try{ BufferedReader br_v = new BufferedReader(new InputStreamReader(System.in)); for(int i=count; i<count; i--){ value = br_v.readLine(atr[i]); v[i] = Integer.parseInt(value); } } catch(IOException e){ System.out.println("エラーです。"); } } }

  • 構文がエラーになる

    Exception in thread"main"java.lang.NoClassDefFoundError という文章でエラーになります。 import java.io.*; class Sample34 { public static void main (String args[])throws IOException { System.out.println("整数を入力してください。"); BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String str = br.readLine(); int res = Integer.parseInt(str); if(res == 1){ System.out.println("1が入力されました。"); } else if(res == 2){ System.out.println("2が入力されました。"); } else{ System.out.println("1か2を入力してください。"); } } }

  • 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
  • メソッドの分割(リファクタリング?)

    指導教官からプログラム自体には問題はないが長すぎるのでメソッドを分割したほうがよいといわれました。以下に書きます(一部改変) try{ System.out.println("1. 2. どちらかを選択してください"); InputStreamReader reader = new InputStreamReader(System.in); BufferedReader br = new BufferedReader(reader); String str = br.readLine(); int res = Integer.parseInt(str); if(!str.matches("[1-2]+")){ System.out.println("1、2から選択してください。"); continue;} if(res == 1){ System.out.println("キーワードを入力"); reader = new InputStreamReader(System.in); br = new BufferedReader(reader); str = br.readLine(); String sql = "SQL文"; ResultSet result = stmt.executeQuery(sql); //vectorにデータを格納 Vector vector1 = new Vector(); String[] array1 = new String[2]; while(result.next()){ array1[0] = result.getString("Res1"); array1[1] = result.getString("Res2"); vector1.addElement(array1); array1 = new String[2];} for(int i = 0;i < vector1.size();i++ ){ String Res1 = null;  String Res2 = null; String[] str1 = (String[])vector1.get(i); Res1 = str1[0]; Res2 = str1[1]; System.out.println("Res1,Res2は" + Res1 + "\t" + Res2);}} if(res == 2){1と同様なので省略・・}} catch(IOException e){ System.out.println(e + "例外が発生しました");} }} メソッドの分割のコツはあるのでしょうか?お勧めの本はございますか? 長くてすいません。

    • ベストアンサー
    • Java
  • 今勉強中のjavaで。わからないことがあります。

    import java.io.*; class Ireru { public static void main(String args[]) throws IOException{ System.out.println("あなたは何歳ですか?"); BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String str1 = br.readLine(); int num =Integer.parseInt(str1); System.out.println("あなたは" + num +"歳です。"); } } ------------------------------- import java.io.*; class Ireru { public static void main(String args[]) throws IOException{ System.out.println("あなたは何歳ですか?"); BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String str1 = br.readLine(); System.out.println("あなたは" + str1 +"歳です。"); } } なぜ下では悪いのですか?なぜnum をつかないといけないかがわかりません。正確には str1とnumの違いがわからなくて困っています。何が混乱の原因ですか?

    • ベストアンサー
    • Java
  • 実行時のとエラーについて質問します

    SQL文を使ったプログラムを実行しようとするとエラーが 出てしまうのですが、解決方法を教えて下さい。 **** プログラム **************************************** (前略) public class DBAccessMainNaka{ public static void main(String args[])throws Exception{ DBAccessNaka naka = new DBAccessNaka(); System.out.println("操作を選択して下さい"); System.out.println("1.Insert Account 2.Select Account 3.Insert Trainee 4.Select Trainee"); BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String str = br.readLine(); int res = Integer.parseInt(str); (中略) }else if(res == 2){ System.out.println("名前を入力して下さい"); String name2 = br.readLine(); Account account = nakajima.selectAccount(name2); System.out.println("「検索結果」"); System.out.println("id [" + account.getId() + "]"); System.out.println("name [" + account.getName() + "]"); System.out.println("money[" + account.getMoney() + "]"); (中略) } else if(res == 4){ System.out.println("名前(名)を入力して下さい"); String firstName = br.readLine(); List<Trainee> traineeList = new ArrayList<Trainee>(); traineeList.add((Trainee) nakajima.selectTrainee(firstName)); for(int i=0; i<traineeList.size(); i++){ Trainee trainee =(Trainee)traineeList.get(i); System.out.println("[検索結果]"); System.out.println("id [" + trainee.getId() + "]"); System.out.println("id [" + trainee.getlast_Name() + "]"); System.out.println("id [" + trainee.getfirst_Name() + "]"); System.out.println("id [" + trainee.getbirth_Day() + "]"); } } ************************************************************* res == 1と3のときは上手く実行出来るのですが、 res == 2を選択すると、java.sql.SQLException: ORA-00936: 式がありません。というエラーが出て、 res == 4を選択すると、java.lang.ClassCastExceptionが出てしまいます。 エラーの意味など色々調べたのですが解決出来なかったので、 間違っている記述があれば教えてください。 ただ、他のクラスも利用しているので分かりにくいかもしれないので その際は聞いていただければその部分についても書きます。 変な質問ですみませんが、よろしくお願いします。

    • ベストアンサー
    • Java
  • プログラムの組み合わせ方

    java初心者です。 2つのプログラムを組み合わせて1つのプログラムにしたいんですが、イマイチ分かりません。 このプログラムと、 import java.io.*; class Hello2 {  public static void main(String[] args) throws IOException {   System.out.println("名前を入力してください");   BufferedReader br = new BufferedReader(new InputStreamReader(System.in));   String str = br.readLine();   System.out.println(str + "さん、こんにちは!");  } } このプログラムを、 import java.io.*; class Sanbai{  public static void main(String[] args) throws IOException {   System.out.println("好きな数を入力してください");   BufferedReader br = new BufferedReader(new InputStreamReader(System.in));   String str = br.readLine();   int x;   x = Integer.parseInt(str);   System.out.println("あなたの入力した数:" + x);   System.out.println("その3倍の数:" + (x*3));  } } 組み合わせて1つのプログラムにするにはどうしたらいいですか?(>_<)

    • ベストアンサー
    • Java
  • コマンドプロンプトでひらがなの入力が出来ません。

    普段グーグル日本語入力を使っています。 OS XPsp2 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; } else if(str2.length() > str.length()){ System.out.println("長すぎます。"); } else if(str2.length() == str.length()){ System.out.println("長さはあっています。"); } else{ System.out.println("短すぎます。"); } } System.out.println("終了"); } }

    • ベストアンサー
    • Java
  • charAt(0)について

    import java.io.*; class Sample3 { public static void main(String[] args) throws IOException { System.out.println("文字列を入力してください。"); BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); 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 + "」はありません。"); } char ch = str2.charAt(0);の部分ですが、 charAt(0)というのは ( )に書かれている番号「のみ」を参照するんですよね? だからもし「こ」んちにはと入力しても0番目の「こ」しか出さないはずなのに、 「に」 を入れたらちゃんと「3番目に に が見つかりました」と出るのはなぜですか?

    • ベストアンサー
    • Java
  • ArrayListを使ったクラスの作成の仕方

    次のプログラム、どこが間違っているのでしょうか? コンパイルは通るのですが、実行しようとすると ずら~っとエラーが出てしまいます。 (例)at java.lang.ClassLoader.defineClass1(Native Method) at java.security.SecureClassLader.defineClass..... at java.net.URLClassLoader.defineClass(URLClassLoader.java:260) ********************************************************** package siryou; import java.util.ArrayList; import java.io.*; class Info { private String name; private String age; private String nationality; public void setName(String nm) { name = nm; } public void setAge(String a) { age = a; } public void setNationality(String nt) { nationality = nt; } public void show(String j) { System.out.println("「名前=" + name + "」"); System.out.println("「年齢=" + age + "」"); System.out.println("「国籍=" + nationality + "」"); } } class Kojinjyoho02 { public static void main(String args[])throws IOException { System.out.println("何回入力しますか?"); BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String str = br.readLine(); int res = Integer.parseInt(str); Info in = new Info(); ArrayList list = new ArrayList(); for(int i =0; i < res; i++){ System.out.println("名前は?"); str = br.readLine(); in.setName(str); System.out.println("年齢は?"); str = br.readLine(); in.setAge(str); System.out.println("国籍は?"); str = br.readLine(); in.setNationality(str); list.add(in); } for(int j=0; j < list.size(); j++){ String jyoho = (String)list.get(j); in.show(jyoho); } } }

    • ベストアンサー
    • Java

専門家に質問してみよう