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

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

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

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

Java

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

Q&A

解決済

3回答

552閲覧

javaのfor文の条件式

ythaikaset

総合スコア16

for

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

Java

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

0グッド

0クリップ

投稿2019/05/20 07:53

前提・実現したいこと

javaを使ってバブルソートの勉強をしており、for文の条件式でエラーが出るため、解決したいです。
行いたいことはjが0から配列aのlength-iまで繰り返すということです。

発生している問題・エラーメッセージ

for文の条件式が原因のようで、「intからbooleanには変換できません」というメッセージがでます。

この行に複数マーカーがあります - 型の不一致: int から boolean には変換 できません - 行ブレークポイント:Bubble [行: 8] - sort(int[])

該当のソースコード

java

1public class Bubble { 2 public static void sort(int[] a) { 3 for(int i = 1; i < a.length - 1; i++) { 4 for(int j=0; a.length - i; j++) { 5 if(a[j]>a[j+1]) { 6 int box = a[j]; 7 a[j] = a[j+1]; 8 a[j+1] = box; 9 }else { 10 11 } 12 } 13 } 14

例)a[10]でi = 5の時、jを0から4まで1ずつ増加させ、a[j], a[j+1]の場合a[j]とa[j+1]を入れ替えたいです。

補足情報(FW/ツールのバージョンなど)

eclipseを使用しています。

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

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

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

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

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

m.ts10806

2019/05/20 07:56

当該クラス、およびメソッドを呼び出すところも含めてコードご提示ください
guest

回答3

0

ベストアンサー

java

1for(int i = 1; i < a.length - 1; i++)

は書けてるのに、

java

1for(int j=0; a.length - i; j++)

となっているのが変ですよね。よく見比べてください。

投稿2019/05/20 07:58

mather

総合スコア6753

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

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

ythaikaset

2019/05/20 08:40

ありがとうございます、間違いに気づくことだできました。 比較演算子が入っていませんね。。。
guest

0

既に回答は出ていますが、forの2つ目の要素は「条件式」が入ります。
「条件式」は「その条件を満たすかどうか」をtrue/falseで判定する式です。
(ifとかwhileとかそうですね)

for(int j=0; a.length - i; j++) {
上記ですと、a.length - iの計算結果が指定されるため、本来期待されるtrue/falseの条件式ではなくなります。

つまり、下記のようなコードが投入されたのと同じ意味合いとなります。

java

1 int test = 1; 2 if(test - 3){ 3 System.out.println("a"); 4 } 5// error: incompatible types: int cannot be converted to boolean

投稿2019/05/20 08:05

m.ts10806

総合スコア80850

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

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

ythaikaset

2019/05/20 08:41

ご回答ありがとうございます。 条件式になっていませんでしたね、、、
m.ts10806

2019/05/20 08:43

これくらいのミスはよくあるといえばあります(比較を==ではなく=としてしまったり)
guest

0

一番内側のfor文の条件式がダメですね。

投稿2019/05/20 07:55

y_waiwai

総合スコア87774

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

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

ythaikaset

2019/05/20 08:39

ご回答ありがとうございます、何が間違いか分かりました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問