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! */

いかん、近いうちに困ることになりそうだ。インストールを面倒臭がっている場合ではなさげだ。
インストール!!

またこんど。