質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Q&A

解決済

6回答

8986閲覧

java for二重ループ

Yuukiy

総合スコア19

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

0グッド

1クリップ

投稿2019/01/08 04:53

javaのfor文二重ループについてお聞きしたいです。

■□□□□□□□□□
■■□□□□□□□□
■■■□□□□□□□
■■■■□□□□□□
■■■■■□□□□□
■■■■■■□□□□
■■■■■■■□□□
■■■■■■■■□□
■■■■■■■■■□
■■■■■■■■■■

このように表示したいのですがわからないので教えてください!

途中までは出来ましたが、この先がわかりません
class Main{
public static void main(String[] args){
for(int i=1;i<10;i++){
for(int j=1;j<10;j++){
System.out.print("■");
}
System.out.println();
}
}
}

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

dice142

2019/01/08 04:55

□は表示しないということですか?
Yuukiy

2019/01/08 04:56

いえ、投稿通り■と□を両方表示していく表です!
guest

回答6

0

とりあえず考え方を。

全部で10行あるので外側のループは10回で問題ないです。
1行の中で■と□に分かれているので、内側のループは少しややこしいです。

考え方1: ■と□で分ける

■の数と□の数には規則があります。
(ヒント: 行数)

まずは■を表示する方法を考えてみましょう。
それができたら、■の後ろに□を表示する方法を考えてみましょう。

考え方2: ループ内で分岐する

行が10行で、列も色の区別がなければ10列です。
なので、外側10回内側10回のループでとりあえず■だけを表示してみましょう。

その後、何列目から□に変わるのかを考えて、if文で分岐しましょう。

投稿2019/01/08 05:03

dice142

総合スコア5158

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

2組の2重ループで書いてみました。(1つはボードを組み立てる、もう1つはボードを表示する)

java

1public class Example2XX { 2 public static void main(String[] args) { 3 char box[][] = new char[10][10]; 4 paint(box); 5 show_box(box); 6 } 7 8 static void paint(char[][] box) { 9 for (int y = 0; y < box.length; y++) { 10 for (int x = 0; x < box[y].length; x++) { 11 box[y][x] = (x - y <= 0) ? '■' : '□'; 12 } 13 } 14 } 15 16 static void show_box(char[][] box) { 17 for (int y = 0; y < box.length; y++) { 18 for (int x = 0; x < box[y].length; x++) { 19 System.out.print(box[y][x]); 20 } 21 System.out.println(); 22 } 23 } 24}

実行例
イメージ説明

投稿2019/01/08 15:11

katoy

総合スコア22324

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

白い四角は表示しないのであれば以下で行けます。
表示したいのであればほかの回答者さんのを参考にしてください

Java

1 for(int i=1;i<11;i++){ 2 for(int j=1;j<=i;j++){ 3 System.out.print("■"); 4 } 5 System.out.println(); 6 }

投稿2019/01/08 05:00

編集2019/01/08 05:04
azuapricot

総合スコア2341

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

https://ideone.com/anPlQr

Java

1class Main{ 2 public static void main(String[] args){ 3 for(int i=1;i<10;i++){ 4 for(int j=1;j<10;j++){ 5 if(j <= i){ 6 System.out.print("■"); 7 }else{ 8 System.out.print("□"); 9 } 10 } 11 System.out.println(); 12 } 13 } 14}

投稿2019/01/08 04:59

salud

総合スコア215

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Yuukiy

2019/01/08 05:06

でけました!ありがとうございます!
guest

0

jループの中でif(j>i) で□を、そうでない場合は■を出力してみては?

投稿2019/01/08 04:59

yambejp

総合スコア114777

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

一重のループで書いてみました。

java

1StringBuilder line = new StringBuilder("□□□□□□□□□□"); 2 3for (int i = 0; i < 10; i++) { 4 line.setCharAt(i, '■'); 5 System.out.println(line); 6}

実行例
イメージ説明

□ だけの文字列を頭から1つずつ ■ に置き換えながら、println しているだけです。

追記
for の部分に現れている 10 は line.length() におきかえれば、 10 というマジックナンバーを消すことができます。

投稿2019/01/08 14:15

編集2019/01/09 12:57
katoy

総合スコア22324

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問