![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
このif文がわからないので優しい方教えてください!
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int values[] = new int[10];
for (int i = 0; i < 10; i++)
values[i] = Integer.parseInt(br.readLine());
for (int i = 0; i < 10; i++) {
for (int j = i + 1; j < 10; j++) {
if (values[i] > values[j]) {
int t = values[i];
values[i] = values[j];
values[j] = t;
}
}
}
for (int i = 0; i < 10; i++)
System.out.println(values[i]);
}
}
A 回答 (4件)
- 最新から表示
- 回答順に表示
![](http://oshiete.xgoo.jp/images/v2/common/profile/M/noimageicon_setting_05.png?5a7ff87)
No.4
- 回答日時:
このプログラムではまず十回キーボードから数値を入力してvalues[]に入れます
そこでfor (int i = 0; i < 10; i++) {
で10回for文を回し その中で
for (int j = i + 1; j < 10; j++) を回す事で常に
jがiより1以上大きく10よりは小さい状態を作り出しています
ここでvalues[i]>values[j]の時
int t = values[i]; //values[i]の値を一時tに置く
values[i] = values[j];//values[i]内にvalues[j]の値を入れる
values[j] = t;// values[j]に元values[i]内の値を入れる
で
values[i]とvalues[j]
の値が交換され
values[i]<values[j]
に変化します
jが9になるまでvalues[i]>values[j]の時values[i]とvalues[j]の値を交換し続け これをiが0-9まで続けると
values[]は常にvalues[i]<values[j]になり
values[]の中身をvalues[0]から順に並べると
小さい順に並んでいる結果が見える事になります
頭から並んだ数を一つ一つ比較してゆき、常に小さい方を前にしてゆくのを全ての数について行うと結果的に一番小さい数が一番前に一番多い数が一番後になるまで昇順に並べ替えられるということです
No.2
- 回答日時:
どういう意味でわからないのかが、わからないのですが一応...
これは、並べ替え問題だと思われます。
valuesという配列が4行目で準備されています。その配列の部屋数は10個(0〜9)です。
最初のfor文で、valuesの中身を入れています。
2番目と3番目のfor文で、チャンピオン(i)と、チャレンジャー(j)を決めています。
イメージ↓
△○
↓↓
□□□□□□□□□□
0 1 2 3 4 5 6 7 8 9 (△=i,○=j)
で、昇順に並び替えなので、このif文では、
「チャンピオンの方が、チャレンジャーよりも大きいですか」と
聞いています。もし、その質問の回答が「yes」だったら、
下の3行をしていき、「no」だったら、何もせずに、
3番目のfor文にjに+1しながら、戻ります。
そして、ずっと、その工程を繰り返ししたら、
いつしか、2番目のfor文を抜けます。
そしたら、最後のfor文で、並べ替えをしたvaluesを
表示する作業に入ります。
みたいな感じです。
No.1
- 回答日時:
valuesは1次元配列。
iとjはvaluesの参照場所を決めるカウンタ。
iは0オリジン。jは1オリジン(i+1となっているから)
if文ではvaluesのiで参照される場所に入ってる値と、jで参照される場所(=iで参照される場所の一つ先の場所)に入ってる値の比較をしている。
参考まで。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Java java 入力 3 4 3 出力 ABC DEFG HIJ このようなプログラムの書き方を教えてくだ 2 2022/07/15 14:18
- Ruby 【JAVA】数字をひし形に出力するプログラムについて 2 2022/07/11 23:32
- PHP php エラー 2 2022/10/23 16:43
- Java javaでのプログラム(配列)について質問です. 2 2022/10/14 22:27
- FX・外国為替取引 mql4のコンパイルエラー箇所の修正お願いします。 1 2023/03/15 16:14
- Java Java プログラム public class Main { public static void 3 2023/08/10 23:46
- その他(プログラミング・Web制作) pythonのグローバル変数 2 2022/11/25 18:02
- その他(プログラミング・Web制作) pythonでクラスで複数のメソッドを利用する方法 2 2022/04/15 04:17
- C言語・C++・C# プログラミング c言語 4 2023/03/07 01:05
- Java Java 配列<選挙> 4 2023/07/31 15:07
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
サーブレットをapacheで公開す...
-
list の空は [] ってあわらすのに
-
プログラミングの問題です。大...
-
配列にnullを代入すると、null...
-
eclipseで作ったプログラムを他...
-
次のhtml・cssでspan内の文字を...
-
Eclipse 動的プロジェクトで404...
-
正規表現について質問です。 カ...
-
Processingでマウスクリックで...
-
プログラムの単体テストで金額...
-
プログラム言語習得からアプリ作成
-
下記のリストならno002が含まれ...
-
is this even a thing?
-
JAの支部?地域の農協のカード...
-
えハミルトン路と全域木のちが...
-
CSV出力を画面から選択したデー...
-
ショートカットキーについて
-
あんまりお料理しないのに台所...
-
質問です。 配列が100以上の場...
-
Jupyter notebookですわかりま...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
配列にnullを代入すると、null...
-
is this even a thing?
-
マイクラでPythonのプログラミ...
-
プログラミングの問題です。大...
-
eclipse実行ができない
-
正規表現について質問です。 カ...
-
Processingでマウスクリックで...
-
Eclipse 動的プロジェクトで404...
-
改行含むテキストの表示の仕方
-
eclipseで作ったプログラムを他...
-
JAの支部?地域の農協のカード...
-
JaneStyleのスレッドが見れなく...
-
下記問題の答えが"D"になる意味...
-
「main メソッドを持つクラスが...
-
CSV出力を画面から選択したデー...
-
次のhtml・cssでspan内の文字を...
-
リレーションエンティティクラ...
-
えハミルトン路と全域木のちが...
-
list の空は [] ってあわらすのに
-
変数名とDBカラム名の関係性に...
おすすめ情報