前提・実現したいこと
大学でプログラミングを勉強中です。
郵便番号を入力して住所を表示しつつづけるプログラムを書きたいのですが、うまく動作させる方法が分かりません。
発生している問題・エラーメッセージ
2度入力処理を行ったのち、何も表示しないで終了する。
該当のソースコード
Java
1import java.io.File; 2import java.io.FileNotFoundException; 3import java.util.HashMap; 4import java.util.Scanner; 5public class PostalCode { 6 7 public static void main(String[] args) { 8 File fr = new File("postalcode.csv"); 9 try (Scanner fin = new Scanner(fr)) { 10 HashMap<String,String> hash = new HashMap<String,String>(); 11 while(fin.hasNext()) { 12 13 String s = fin.nextLine(); 14 String[] data = s.split(" "); 15 hash.put(data[0],data[1]); 16 } 17 18 Scanner sc = new Scanner(System.in); 19 int a = sc.nextInt(); 20 String s = sc.next(); 21 while (999999<a&&a<1000000) { 22 Scanner sc1 = new Scanner(System.in); 23 int b = sc1.nextInt(); 24 a = b; 25 String s1 = sc1.next(); 26 System.out.println(s1+":"+hash.get(s1)); 27 } 28 } catch (FileNotFoundException e) { 29 System.out.println("ファイルが見つかりません"); 30 } 31 } 32}
試したこと
補足情報(FW/ツールのバージョンなど)
エクリプス
>うまく動作させる方法が分かりません
AllenIrvingさんにとってのうまい動作とは何でしょうか。
同じもの(System.in)に対して Scanner オブジェクトを幾つも作らないようにしてください。
a や s、 b や s1 といった変数は、入力によってどの様な値になり、 while の条件や hash.get でどうなるとお考えでしょうか。
また、それらを確認するために変数の内容を表示したりはされたのでしょうか。
>プログラミングを作りたいです。
細かいところですが「プログラミング」は作る行為なので、「頭痛が痛い」と言ってるような状態になってます。
今回想定通り動かない!となったあと何を考えて何をしましたか?
質問だけみると、「作ってみたが動かない、(即)ここで原因を聞いてみよう」のように感じます。