• 締切済み

JAVAのwhileループについての質問です

こんばんわ。 javaのforループをwhileループ構文に書き換える問題で詰まっています。 僕はプログラミング超初心者なので、いろいろ考えたが、なかなか答えが出ていません。 ぜひ、わかる方に教えていただきたくここで質問させてもらいました。 ソースコードは以下です class S7j4{ public static void main(String args[]){ short a[] = {26,54,39,71,83,100,98,47,82,65}; short work; int i,j,n; n = 10; for (i = 0;i< n; i++) System.out.print(a[i] +" , "); System.out.println(); for(i = 0; i < n; i++) for(j = 0; j < n;j++) if(a[i] < a[j]){ work = a[i]; a[i] = a[j]; a[j] = work; } for(i = 0; i< n;i++) System.out.print(a[i] + " , "); System.out.println(); } } ぜひ一つよろしくお願いしますm(-_-)m

noname#123161
noname#123161
  • Java
  • 回答数2
  • ありがとう数1

みんなの回答

回答No.2

for (初期化;継続条件;後処理) { ・・・処理・・・ } これを 初期化 while (継続条件) { ・・・処理・・・ 後処理 } と順番に置き換えてやってください。各文の意味を考えてあげてください。

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.1

「いろいろ考えた」というなら, 何をどう考えたのかを書くこと. あと, 「答えが出ていません」とはどういうことですか? 「答えが出ている」かどうか, どのように判定しているのですか?

関連するQ&A

  • javaのプログラムについて

    java始めたばかりの者です。 class sample1 { public static void main(String[] args) { for(int i=1; i<=5; i++){ for(int j=0; j<i; j++){ System.out.println("*"); } System.out.println("\n"); } } } これを実行すると * * * * * * * * * * * * * * * こうなってしまい * ** *** **** ***** このようにするにはどうしたらいいのでしょうか??

    • ベストアンサー
    • Java
  • JAVAの質問です。

    JAVAの質問です。 javaでスロットを作りたいのですが…。 3行3列で縦と横同じ数字の場合”おめでとう”と表示されるプログラムを作りたいのですがわからないです。 助けてください(>_<) public class surotto { public static void main(String args[]) { int hako[][]; int i,j; hako = new int[3][3]; System.out.println("スロットスタート。"); for(i=; i<3; i++){ for(j=0; j<3; j++){ hako[i][j] = (int)(Math.random()*10); } } for(i=0; i<3; i++){ for(j=0;j<3;j++){ System.out.println([i][j]); } System.out.println("\r\n"); } for(i=0; i<3 ; i++){ if((hako[i][0] == hako[i][1]) && (hako[i][1] == hako[i][2])){ System.out.println("横がそろいました、おめでとう\n"); } } for(j=0; j<3 ; j++){ if((hako[0][j] == hako[1][j]) && (hako[1][j] == hako[2][j])){ System.out.println("縦がそろいました、おめでとう\n"); } }

    • ベストアンサー
    • Java
  • javaの問題

    import java.util.Scanner; class test6{ static void printArray(int[] a) { for(int i=0;i<a.length;i++) System.out.print(String.format("%1$6s", (a[i]+" "))); System.out.println(); } static void printArray(int[][] a) { for(int[] i:a) { for(int j:i) System.out.print(String.format("%1$6s",(j+"\t"))); System.out.println(); } } public static void main(String[] args) { int[] a = {12,536,-8,7}; int[][] c = {{32,-1,32,45,67}, {535,99999,2}, {2,5,-123,9}}; printArray(a); printArray(c); } } このプログラムを表示するとこのようになるのですが、 12 536 -8 7 32 -1 32 45 67 535 99999 2 2 5 -123 9 これに一工夫加えて見やすくしたいです。 このような形にするのはどのようにすればよいのでしょうか + + | 32 -1 45 67 | | 535 99999 2 | | 2 5 -123 9 | + +

  • java ネストしたfor文について

    ***** **** *** ** * 上のように*が減るようにしたいのですが下のソースではどこが悪いか教えてください class TestGoo{ public static void main(String args[]){ for(int i = 5; i>=1; i--){ for(int j = 5;j>=1; j--){ System.out.print('*'); } System.out.println(); } } }

  • Javaのforとwhileの使い方

    プログラミングをはじめたばかりのものです。 「何回か数字を入力してその合計が100になったら終了 するプログラム(100になるまで入力待ちを繰り返すプログラム」 というのを作っているのですが、 以下のようにするとエラーが出ました。 public class upto100 { public static void main(String[] args) { for (int i=0; i <= 100; i=i+j) { String line = reader.readLine(); int j = Integer.parseInt(line); System.out.println("まだ100じゃない"); } System.out.println("もう100"); } } 入力待ちにするString line~~と int j~~~の場所が間違っているのだろうと 思うのですが、どのようにすればよろしいのでしょうか?

    • ベストアンサー
    • Java
  • forループの中での初期化

    class Foo{   public static void main(String args[]){     int x=10;     for(int i=0;i<5;i++){       System.out.print(x+i);     }     System.out.print("\n"+i);   } } このプログラムはコンパイルエラーが出ます。 iがforループの中で宣言されていてその外では無効だからです。 そこで class Foo{   public static void main(String args[]){     int x=10;     int i;     for(i=0;i<5;i++){       System.out.print(x+i);     }     System.out.print("\n i="+i);   } } のようにしてみました。 i=5と出ました。 ふと、iは確かに宣言されているけど、初期化はforの中でしかされていないのになぜコンパイルエラーにならなかったんだろう??、と思ってしまいました。 おかしくないでしょうか?

    • ベストアンサー
    • Java
  • Javaの初歩的なプログラムについて

    public class ForInFor{ public static void main(String[] args){ for(int i=1; i<=9; i++){ String a = ""; for(int j=1; j<=9; j++){ a += i * j + " "; } System.out.println(a); } } } を実行すると九九の表のようになりました。 println(a)の中のaはjの方のforの繰り返しが終わったら代入するものだと思っていましたので 戸惑っています。 実際にはどういう流れで九九の表ができるのでしょうか?

  • javaプログラミングの質問です。

    プログラムで数値の奇遇、合計値、最大値までは出せたのですが平均値の出し方がわかりません。 どこに何を入れればいいかを教えてください。お願いします。 public class pazu{ public static void main(String[] args){ int sum =0,saidai; System.out.println("コマンドラインパラメータは"+args.length+"個です"); for(int i=0;i<args.length;i++){ int x=Integer.parseInt(args[i]); if(pazu.is_even(x)) System.out.println(args[i]+"は偶数です"); else System.out.println(args[i]+"は奇数です"); sum+=x; } saidai=pazu.max(args); System.out.println("合計:"+sum); System.out.println("最大:"+saidai); } static boolean is_even(int number){ return number%2==0; } static int max(String[] number){ int max =0; for(int i=0;i<number.length;i++){ if(max<Integer.parseInt(number[i])){ max=Integer.parseInt(number[i]); } } return max; } }

    • ベストアンサー
    • Java
  • javaのプログラム

    int型の配列の各要素に1~10の乱数を代入し、各要素の値を縦向きの*のグラフで表示するプログラムを作っているのですが、結果がランダムででるので、自分の書いたプログラムが正しいのかわかりません。ソースを載せますので合っているのか間違っているか教えて下さい。もし間違っているならどこが間違いなのか教えていただけると嬉しいです。よろしくお願いします。 ●ソース import java.util.Random; import java.util.Scanner; class Graph { public static void main(String[] args){ Random rand = new Random(); Scanner stdIn = new Scanner(System.in); System.out.print("要素数:"); int n = stdIn.nextInt(); int a[] = new int[n]; for (int i = 0; i < n; i++) a[i] = 1 + rand.nextInt(10); for (int i = 1; i <= 10; i++){ for (int j = 0; j < n; j++) if (a[j] <= i) System.out.print("* "); else System.out.print(" "); System.out.println(); } } } ●実行例 要素数:12 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

    • ベストアンサー
    • Java
  • java while文です。教えてください(__)

    public class mondai2{ //プログラム開始 public static void main(String args[]){ BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); int i; int ans=0; int seikai=0; for(i=0;i<5;i++){ try{ { Random ran = new Random(); int num1 = ran.nextInt(8)+1; int num2 = ran.nextInt(8)+1; ans = num1*num2; System.out.print("問題"+(i+1)+":"); System.out.print(num1 + "×" +num2 + "="); String s =in.readLine(); seikai = Integer.parseInt(s); if(seikai==ans){ System.out.println("正解"); }else{ System.out.println("不正解"); } } }catch(IOException e){ System.out.println("エラー"); } } } } このプログラムをwhile文か、do while文にして正解が出るまで問題が出続けるようにしたいんですけど、まったくわからなくて困っています>< 教えてください(+o+)

    • ベストアンサー
    • Java