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

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

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

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

配列

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

Q&A

解決済

3回答

1836閲覧

配列A[]とB[]に格納されてるデータを逆順に入れ替える

Miya6535

総合スコア7

Java

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

配列

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

0グッド

0クリップ

投稿2017/05/21 22:18

  1. 番号リスト###前提・実現したいこと

javaで配列A[]とB[]に格納されてるデータの内容を逆順に格納して表示することを行いたいのですがうまくいきません。

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

###該当のソースコード
public class KadaiEx1 {

public static void main(String[] args) { int[] a = {10,20,30,40,50,60}; int[] b = {6,5,4,3,2,1}; int work = 0; for(int i = 0; i <=5 ;i++){ work = a[a.length-i-1]; a[i]= b[b.length -i -1]; b[i] = work; System.out.println(a[i]+"x配列"+i+"番目"); System.out.println(b[i]+"y配列"+i+"番目"); } }

}

コンソール結果 1 x配列0番目 60 y配列0番目 2 x配列1番目 50 y配列1番目 3 x配列2番目 40 y配列2番目 40 x配列3番目 3 y配列3番目 50 x配列4番目 2 y配列4番目 60 x配列5番目 1 y配列5番目 行いたい表示結果 1 x配列0番目 60 y配列0番目 2 x配列1番目 50 y配列1番目 3 x配列2番目 40 y配列2番目 30 x配列3番目 4 y配列3番目 20 x配列4番目 5 y配列4番目 10 x配列5番目 6 y配列5番目 ###試したこと javaの初心者なのでなぜこうなるかも教えていただけたら幸いです。

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

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

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

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

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

guest

回答3

0

プログラミングの経験を積むためには「答えを教わる」より「自分で考えて原因を見つける」方が有効です。特に初心者の場合にそのことで得られる経験は大きくなると思います。

本件は充分シンプルな内容ですので、自分がJava言語プロセッサーになったつもりで各配列の要素がfor文の中でどのような値に変わっていくか紙切れにペンで書き下していくことをお勧めします。

複雑なプログラムをデバッグする際には、そういうやり方では解決困難ですが、そういうレベルのデバッグの力を得るためには最初の段階で上記のようなデバッグをやって得た知識・経験がものを言うようになるはずです。(と、自分は思います)

投稿2017/05/21 22:55

編集2017/05/21 22:55
KSwordOfHaste

総合スコア18394

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

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

Miya6535

2017/05/27 22:48

ご指摘ありがとうございます。 もう一度考え直して原因を調べていきたいと思います。
guest

0

ベストアンサー

どのような表示結果を期待しているのかよく理解できていないのですが、

work = a[a.length-i-1];
a[i]= b[b.length -i -1];
b[i] = work;

この部分は実行後次のようになります
a[i] <- b[b.length -i -1]
b[i] <- a[a.length -i -1]

a[i]およびb[i]にあったデータはどこにも保管されずに消えていることがわかります...
もう1回workに入れて、これらが消えずに入れ替わるようにすべきではないでしょうか?

投稿2017/05/21 22:53

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

Miya6535

2017/05/27 22:59

わかりやすい説明していただきありがとうございました。 この説明を参考にしまして取り組んだ所解決いたしました。
guest

0

質問と期待する結果がかみ合っていないようですが、最終的にこうしたいということでしょうか

java

1int[] a = {10,20,30,40,50,60}; 2int[] b = {6,5,4,3,2,1}; 34int[] a = {1,2,3,4,5,6}; 5int[] b = {60,50,40,30,20,10};

各々の配列を逆順に並び替えて、最後に配列ごと入れ替えればいいのではないでしょうか。

投稿2017/05/22 02:43

swordone

総合スコア20651

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問