Javaプログラミング学習サイト ゆるゆるプログラミング

2020/03/23 公開

・横縞模様(テキスト版)

テキストで横縞模様を表現する方法を紹介します。ここで紹介するプログラムで出力するテキストの表示は、黒色は'●'、白色は'○'で表現します。

以下は、テキストで横縞模様を表現するJavaソースコードで、横の文字数(列数)と、縦の文字数(行数)を指定して模様を表示します。

TextPattern_Line000.java ← クリックしてダウンロードページに移動
001:    public class TextPattern_Line000 {
002:    	public static void main( String[] args ) {
003:    		// 変数宣言
004:    		int w, h;	// サイズ
005:    
006:    		// 入力した引数が2以上かを調べる
007:    		if ( 2 > args.length ) {
008:    			// 入力した引数が2未満の場合、使用方法を表示する
009:    			System.out.println( 
010:    				"TextPattern_Line000 [幅] [高]" );
011:    			return;
012:    		}
013:    
014:    		try {
015:    			// 引数を変換し、画像の幅と高さをwとhに代入
016:    			w =  Integer.valueOf( args[ 0 ] );
017:    			h =  Integer.valueOf( args[ 1 ] );
018:    		}
019:    		catch( NumberFormatException ne )
020:    		{
021:    			System.out.println( "引数が不正です" );
022:    			return;
023:    		}
024:    
025:    		// 横縞テキストの作成
026:    		for ( int y = 0; y < h; ++ y ) {
027:    			for ( int x = 0; x < w; ++ x ) {
028:    				// 黒か白かを判定
029:    				if ( 0 == y % 2 )
030:    					System.out.print( "●" );
031:    				else
032:    					System.out.print( "○" );
033:    			}
034:    			// 改行
035:    			System.out.println();
036:    		}
037:    	}
038:    }

TextPattern_Line000の実行例

java TextPattern_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:    		// 入力した引数が2以上かを調べる
007:    		if ( 2 > args.length ) {
008:    			// 入力した引数が2未満の場合、使用方法を表示する
009:    			System.out.println( 
010:    				"TextPattern_Line000 [幅] [高]" );
011:    			return;
012:    		}

2つ以上の引数が与えられたかをチェックし、2つ未満の場合に、使い方のメッセージを表示し、returnによってmainメソッドを抜けています。

014:    		try {
015:    			// 引数を変換し、画像の幅と高さをwとhに代入
016:    			w =  Integer.valueOf( args[ 0 ] );
017:    			h =  Integer.valueOf( args[ 1 ] );
018:    		}
019:    		catch( NumberFormatException ne )
020:    		{
021:    			System.out.println( "引数が不正です" );
022:    			return;
023:    		}

与えられた引数をそれぞれ、作成する幅(横方向のの文字数)/高さ(縦方向のの文字数)を格納する変数に代入しています。引数String型なので、Integerクラスを使ってint型に変換しています。

025:    		// 横縞テキストの作成
026:    		for ( int y = 0; y < h; ++ y ) {
027:    			for ( int x = 0; x < w; ++ x ) {
028:    				// 黒か白かを判定
029:    				if ( 0 == y % 2 )
030:    					System.out.print( "●" );
031:    				else
032:    					System.out.print( "○" );
033:    			}
034:    			// 改行
035:    			System.out.println();
036:    		}

テキストの座標(x,y)を参照する2重ループをつくり、(x,y)から黒色か白色かを判定します。判定で確定した色に対応した文字を改行しないで表示します(System.out.printを使用)。そして、変数xのfor文を抜けた後にSystem.out.println()改行しています。

次に、黒色か白色かを判定する方法について説明します。

黒と白は1行ごとに交互に表れるので変数yを2で割った余りが0の時に黒('●')、1の時に白('○')とすれば、以下のように黒と白が交互に表示されます。

●●●●●●●●●●●●●●●●●●●●
○○○○○○○○○○○○○○○○○○○○
●●●●●●●●●●●●●●●●●●●●
○○○○○○○○○○○○○○○○○○○○
●●●●●●●●●●●●●●●●●●●●
○○○○○○○○○○○○○○○○○○○○
●●●●●●●●●●●●●●●●●●●●

以上です。

■関連コンテンツ

模様の描画 いろいろな模様の描画方法を紹介
値のコンソール表示 print()、println()とは?
円を描く(テキスト版) テキストを円を描く
市松模様の画像作成方法を紹介-画像

市松模様

白と黒の市松模様画像を作成する方法を解説しています。

繰り返し処理に使用するfor文について解説-画像

for文

繰り返し処理に使用するfor文をJavaのソースコードを使って説明しています。

for文の中にfor文-画像

多重ループ

for文などのループの中にループをいれたプログラムの構造、多重ループについて説明しています。

剰余(余り)を計算した結果を表示するプログラムについて解説-画像

剰余(余り)計算

剰余(余り)をを計算するプログラムの紹介と、その結果を表示する方法を解説

三角形を描く(テキスト版) その1-画像

三角形を描く(テキスト版) その1

for文を使ってテキストの直角三角形を表現する方法を解説しています。底辺が下になる直角三角形です。

■新着情報

2022.07.07 外部プログラムの実行 exeファイル実行
2022.07.06 完全数 6=1+2+3

■広告

 

 

 

 

 

スッキリわかるJava入門第3版 [ 中山清喬 ]

価格:2,860円
(2021/6/18 14:32時点)
感想(6件)

 

 

Topへ