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

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

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

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

Q&A

解決済

3回答

408閲覧

if文を使って、比較し、出力したい。

Aya.koji

総合スコア15

Java

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

1グッド

0クリップ

投稿2019/03/04 09:09

編集2019/03/05 02:59

・数値が入った2つの配列の内容を比較したい。
・結果、全部同じならTrue、1つでも違うものがあればFalseを導き出したい。

※出来れば、効率的な解答ではなく、初歩的な解答を希望します。
私が素人なので、まだ学んでない単語は、使えません。
引き出しの多い方頼りになりますが、よろしくお願いします。

bochan2👍を押しています

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

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

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

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

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

LouiS0616

2019/03/05 02:44

質問の内容を元に戻してください。 teratailでは質問解決後に内容を抹消する行為は認められておらず、通報の対象となります。
Aya.koji

2019/03/05 04:50

もどしました。
guest

回答3

0

読むのに挫折しそうになりましたが、要するに

  • 数値が入った2つの配列の内容を比較したい。
  • 結果、全部同じならTrue、1つでも違うものがあればFalseを導き出したい。

ということですか?値を入力とか、余計な説明を省けば簡潔になるので、自分が一体何に困っているのか、まずご自分で把握するところから始めてください。

で、比較ですが、おそらく何通りもやり方はあります。多分シンプルなのは

  1. あらかじめ「比較結果」変数を用意しておく(とりあえずTrueを入れておく)。
  2. for文で2つの配列の内容それぞれをif文を使って比較する(全件比較)。
  3. 上記2の結果を、1の変数にANDで加える。

上記の3は、論理演算を使います。論理演算ANDは

  • True and True = True
  • True and False = False(逆も同様)
  • False and False = False

のようになる計算を行うので、1つでもFalse(不一致)があると、その後の結果は全部Falseになります。なので、上記の手順で結果がTrueになるには「配列の全部が一致する」という必要があり、おそらくお求めの答えに行き着けるかと。

もっと処理を短くするなら、不一致を発見し次第ループを中断するとかすれば処理時間は短くなりますね。

投稿2019/03/04 09:20

backyard

総合スコア534

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

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

Aya.koji

2019/03/04 10:06

失礼しました。 また、ご指摘ありがとうございます。 回答においても、私が少しでも前に進めるような答えで、非常にサービス精神がある方だと感じました。 大変嬉しい回答です。 ただ、私がまだ未熟の身であるばかりに、その知識に付いていく事が難しいです。 なので、回答例を3つに分けて下って非常に助かりました。 おそらく、2の回答で答えるのが今の私にあっていると思いました。 よければ、その辺の説明を頂けると幸いです。
guest

0

ベストアンサー

このコードを研究してみてください。

java

1import java.util.Scanner; 2 3public class Mainx { 4 public static void main(String[] args) { 5 final int ARRAY_LEN = 4; 6 int[] array_a = { 1, 2, 3, 4 }; 7 int[] array_b = new int[ARRAY_LEN]; 8 Scanner scanner = new Scanner(System.in); 9 for (int i = 0; i < ARRAY_LEN; i++) { 10 System.out.println("数値を入力してください。"); 11 array_b[i] = scanner.nextInt(); 12 } 13 boolean flag = true; 14 for (int i = 0; i < ARRAY_LEN; i++) { 15 if (array_a[i] != array_b[i]) { 16 flag = false; 17 break; 18 } 19 } 20 if (flag) { 21 System.out.println("True"); 22 } else { 23 System.out.println("False"); 24 } 25 } 26}

投稿2019/03/04 14:10

katoy

総合スコア22324

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

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

Aya.koji

2019/03/04 14:51

ありがとうございます! 繰り返し、使ってみます!
guest

0

java.util.Arraysequals()を使って比較するのが手っ取り早いかと。

java

1class sample 2{ 3 public static void main(String[] args) 4 { 5 int[] a = {1, 2, 3}; 6 int[] b = {1, 2, 3}; 7 8 System.out.println(java.util.Arrays.equals(a, b)); 9 } 10}

投稿2019/03/04 09:59

otftrough

総合スコア476

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

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

Aya.koji

2019/03/04 10:08

ありがとうございます! すみません、配列の一つはコンソール入力での代入なのです。 同じようにできますか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問