ITP1_5_B Print a Frame
問題
Print a Frame | Aizu Online Judge
問題自体は大したことないのですが、一つ勉強になったことがあったので、ブログを書いています。
最初にコンパイルした際は、「jが宣言されてないよ」というエラーが発生しました。
そんな馬鹿なしっかり宣言しているじゃないか、と思いましたが、調べてみると変数宣言にこんなルールが。
if文などの分岐で初期化がされない場合は、上記のようなエラーが出るらしいです。なので、今回は二か所でjの宣言をしています。
import java.util.Scanner; public class itp_5_b { public static void main(String[] args){ Scanner scan=new Scanner(System.in); while(true){ int H=scan.nextInt(); int W=scan.nextInt(); if(H==0 && W==0)break; for(int i=0;i<H;i++){ if(i==0 || i==H-1){ for(int j=0;j<W;j++)System.out.print("#"); System.out.println(); } else { for(int j=0;j<W;j++){ if(j==0 || j==W-1)System.out.print("#"); else System.out.print("."); } System.out.println(); } } System.out.println(); } } }
細かい所でc言語と違っていて、非常にイライラします。