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

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

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

for文は、様々なプログラミング言語で使われている制御構造です。for文に定義している条件から外れるまで、for文内の命令文を繰り返し実行します。

if

if文とは様々なプログラミング言語で使用される制御構文の一種であり、条件によって処理の流れを制御します。

Java

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

配列

配列は、各データの要素(値または変数)が連続的に並べられたデータ構造です。各配列は添え字(INDEX)で識別されています。

Q&A

解決済

2回答

2300閲覧

【java】for文とif文の組み合わせ、配列の使い方が理解出来ない

pikari

総合スコア14

for

for文は、様々なプログラミング言語で使われている制御構造です。for文に定義している条件から外れるまで、for文内の命令文を繰り返し実行します。

if

if文とは様々なプログラミング言語で使用される制御構文の一種であり、条件によって処理の流れを制御します。

Java

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

配列

配列は、各データの要素(値または変数)が連続的に並べられたデータ構造です。各配列は添え字(INDEX)で識別されています。

0グッド

0クリップ

投稿2020/10/12 14:09

  • 実現したいこと

javaでターミナルに
3 1 2 7 5
1 2 3 5 7
と出力したい。

3 1 2 7 5の出力は出来たのですが
下段(12357)の出力の仕方がわかりません。
2つ目のfor文以下のコードの意味を理解できないため、⭕の部分に何を入れれば、出力に至るのか、お時間のある方、アドバイスをいただきたいです。初歩的な質問ですいません。よろしくお願いします。

java

1public class Check{ 2 public static void main(String[] args){ 3 4 int[] data = {3, 1, 2, 7, 5}; 5 6 for(int i = 0; i < data.length; i++){ 7 System.out.print(data[i] + " "); 8 } 9 System.out.println(); 10 11 12 13 for (int i = 0; i <; i++) { 14 System.out.println(data[i] + ""); 15 for (int j =; j > i; j--) { 16 17 if(data[] > data[]){ 18 int box = data[]; 19 data[] = data[]; 20 data[] = box; 21 } 22 } 23 } 24 for(int i = 0; i < data.length; i++){ 25 System.out.print(data[i] + " "); 26 } 27 } 28}

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

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

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

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

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

gentaro

2020/10/12 14:22

宿題の丸投げにしか見えないなぁ。
dodox86

2020/10/12 16:28

> 2つ目のfor文以下のコードの意味を理解できないため、 「初歩的な」とかあまり関係なく、{3, 1, 2, 7, 5}の数列(intの配列)から何を目的として{1, 2, 3, 5, 7}にしているか、です。ヒントは「ソート」です。昇順(小さい値の順)に並び変わっていますね。
m.ts10806

2020/10/12 20:44

>初歩的な質問ですいません。よろしくお願いします。 ひとまず、「初心者アイコン」をつけましょう。 初歩的かどうかは誰にも関係なく、要件でもありません。 人によっても違うので、書いたところで何の配慮にもなりません。
pikari

2020/10/13 14:03

ご指摘ありがとうございます。 ヒントを踏まえ、再度調べた所「バブルソート」という概念に辿り着きました。 しっかりと調べ込んでいきます。
guest

回答2

0

自己解決

java

1public class Check{ 2 public static void main(String[] args){ 3 4 for(int i = 0; i < data.length; i++){ 5 System.out.print(data[i] + " "); 6 } 7 System.out.println(); 8 9 10 for (int i = 0; i < 4; i++) { 11 for (int j = data.length - 1; j > i; j--) { 12 13 if(data[j - 1] > data[j]){ 14 int box = data[j - 1]; 15 data[j - 1] = data[j]; 16 data[j] = box; 17 } 18 } 19 } 20 for(int i = 0; i < data.length; i++){ 21 System.out.print(data[i] + " "); 22 } 23 } 24}

投稿2020/10/13 14:10

pikari

総合スコア14

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

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

0

Java

1public class Check { 2 public static void main(String[]args) { 3 4 int[] data = { 3, 1, 2, 7, 5 }; 5 6 for (int i = 0; i < data.length; i++) { 7 System.out.print(data[i] + " "); 8 } 9 System.out.println(); 10 11 for (int i = 0; i < data.length - 1; i++) { // ○: data.length - 1 12 System.out.println(data[i] + " "); 13 for (int j = i + 1; j > i; j--) { // ○: i + 1 14 if (data[i] > data[i + 1]) { // ○: i, ○: i + 1 15 int box = data[i]; // ○: i 16 data[i] = data[i + 1]; // ○: i, ○: i + 1 17 data[i + 1] = box; // ○: i + 1 18 } 19 } 20 } 21 for (int i = 0; i < data.length; i++) { 22 System.out.print(data[i] + " "); 23 } 24 System.out.println(); 25 } 26}

ただし、このコードでは、
int[] data = { 3, 1, 2, 7, 5 }; は 1, 2, 3, 5, 7 になりますが、
int[] data = { 7, 5, 3, 2, 1 }; は 1, 2, 3, 5, 7 にならないのでご注意を。

ただしいやりかたは「バブルソート」で検索を。

投稿2020/10/12 18:34

編集2020/10/12 18:35
kazuma-s

総合スコア8224

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

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

pikari

2020/10/13 14:09

ご回答ありがとうございます! 回答していただいた通り、バブルソートで解決しました。 ありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問