FizzBuzzで学習するJava
本を読まないで進める。
環境
http://ideone.com/を使う。インストールが面倒くさいから。
その1
new codeでjavaを選択する。ここから始める。
/* package whatever; // don't place package name! */ import java.util.*; import java.lang.*; import java.io.*; /* Name of the class has to be "Main" only if the class is public. */ class Ideone { public static void main (String[] args) throws java.lang.Exception { private static final } }
その2
思いつくままに書く
調べたこと
- for文の書き方
- if文の書き方
- 文字の変数の宣言
- 標準出力
- 数値を文字型の変数にブチ込む
これだけで動くようになった。
import java.util.*; import java.lang.*; import java.io.*; /* Name of the class has to be "Main" only if the class is public. */ class Ideone { public static void main (String[] args) throws java.lang.Exception { // your code goes here for(int n=1; n<=100; n++){ String str=""; if(n%15==0){ str = "Fizz Buzz"; }else if(n%3==0){ str = "Fizz"; }else if(n%5==0){ str = "Buzz"; }else{ str = String.valueOf(n); } System.out.println(str); } } }
その3
まだまだつづくよ
このあたりからFizzBuzzをリファクタリングするを参考にする。
コードの中に現れる値を定数化する。
- ここでしか利用しない変数の宣言「private static final」でミス防止やメモリ節約
- 定数は大文字
- 演算子と括弧にはスペース
- 変数代入やめる
/* package whatever; // don't place package name! */ import java.util.*; import java.lang.*; import java.io.*; /* Name of the class has to be "Main" only if the class is public. */ class Ideone{ private static final String FIZZ_TEXT = "Fizz"; private static final String BUZZ_TEXT = "Buzz"; private static final int FIZZ_NUMBER = 3; private static final int BUZZ_NUMBER = 5; private static final int LOOP_COUNT = 100; public static void main (String[] args) throws java.lang.Exception { for (int i=1; i<=LOOP_COUNT; i++) { if ( i % (FIZZ_NUMBER + BUZZ_NUMBER) == 0) { System.out.println(FIZZ_TEXT + BUZZ_TEXT); } else if ( i % FIZZ_NUMBER == 0) { System.out.println(FIZZ_TEXT); } else if ( i % BUZZ_NUMBER == 0) { System.out.println(BUZZ_TEXT); } else { System.out.println(i); } } } }
中断
適当に流していた1行目のpackageについて調べる
/* package whatever; // don't place package name! */
いかん、近いうちに困ることになりそうだ。インストールを面倒臭がっている場合ではなさげだ。
インストール!!
またこんど。