横縞模様(テキスト版)
はじめに
テキストで横縞模様を表現する方法を紹介します。ここで紹介するプログラムで出力するテキストの表示は、黒色は'●'、白色は'○'で表現します。
Javaソースコード
TextPattern_Line000.java
001 002 003 004 005 006 007 008 009 010 011 012 013 014 015 016 017 018 019 020 021 022 023 024 025 026 027 028 029 030 031 032 033 034 035 036 037 038
public class TextPattern_Line000 { public static void main( String[] args ) { // 変数宣言 int w, h; // サイズ // 入力した引数が2以上かを調べる if ( 2 > args.length ) { // 入力した引数が2未満の場合、使用方法を表示する System.out.println( "TextPattern_Line000 [幅] [高]" ); return; } try { // 引数を変換し、画像の幅と高さをwとhに代入 w = Integer.valueOf( args[ 0 ] ); h = Integer.valueOf( args[ 1 ] ); } catch( NumberFormatException ne ) { System.out.println( "引数が不正です" ); return; } // 横縞テキストの作成 for ( int y = 0; y < h; ++ y ) { for ( int x = 0; x < w; ++ x ) { // 黒か白かを判定 if ( 0 == y % 2 ) System.out.print( "●" ); else System.out.print( "○" ); } // 改行 System.out.println(); } } }
コンパイル ソースコードが「ANSI」の場合
C:\talavax\javasample>javac -encoding sjis TextPattern_Line000.java
コンパイル ソースコードが「UTF-8」の場合
C:\talavax\javasample>javac TextPattern_Line000.java
実行
C:\talavax\javasample>java TextPattern_Line000 20 10
実行結果
●●●●●●●●●●●●●●●●●●●● ○○○○○○○○○○○○○○○○○○○○ ●●●●●●●●●●●●●●●●●●●● ○○○○○○○○○○○○○○○○○○○○ ●●●●●●●●●●●●●●●●●●●● ○○○○○○○○○○○○○○○○○○○○ ●●●●●●●●●●●●●●●●●●●● ○○○○○○○○○○○○○○○○○○○ ●●●●●●●●●●●●●●●●●●●● ○○○○○○○○○○○○○○○○○○○○
Javaソースコードの解説
001
public class TextPattern_Line000 {
クラス名を、TextPattern_Line000としています。
002
public static void main( String[] args ) {
このmainメソッドからプログラムを実行します。
003 004
// 変数宣言 int w, h; // サイズ
このプログラムで使う変数を宣言しています。
006 007 008 009 010 011 012
// 入力した引数が2以上かを調べる if ( 2 > args.length ) { // 入力した引数が2未満の場合、使用方法を表示する System.out.println( "TextPattern_Line000 [幅] [高]" ); return; }
014 015 016 017 018 019 020 021 022 023
try { // 引数を変換し、画像の幅と高さをwとhに代入 w = Integer.valueOf( args[ 0 ] ); h = Integer.valueOf( args[ 1 ] ); } catch( NumberFormatException ne ) { System.out.println( "引数が不正です" ); return; }
025 026 027 028 029 030 031 032 033 034 035 036
// 横縞テキストの作成 for ( int y = 0; y < h; ++ y ) { for ( int x = 0; x < w; ++ x ) { // 黒か白かを判定 if ( 0 == y % 2 ) System.out.print( "●" ); else System.out.print( "○" ); } // 改行 System.out.println(); }
テキストの座標(x,y)を参照する2重ループをつくり、(x,y)から黒色か白色かを判定します。判定で確定した色に対応した文字を改行しないで表示します(System.out.printを使用)。そして、変数xのfor文を抜けた後にSystem.out.println()で改行しています。
次に、黒色か白色かを判定する方法について説明します。
●●●●●●●●●●●●●●●●●●●● ○○○○○○○○○○○○○○○○○○○○ ●●●●●●●●●●●●●●●●●●●● ○○○○○○○○○○○○○○○○○○○○ ●●●●●●●●●●●●●●●●●●●● ○○○○○○○○○○○○○○○○○○○○ ●●●●●●●●●●●●●●●●●●●●
以上です。