1

ユーザー入力を使用して、配列内の特定の点の座標を取得するコードがあります。配列内の数値が存在しない場合にアドレスが見つからないことをコード出力に伝えるには、どのコードを追加すればよいでしょうか? 私はelseステートメントが必要だと確信していますが、それを機能させることができません。ここに私が今持っているコードがあります。

import java.util.Scanner;

public class LabActivityArray 
{
    public static void main (String[] args) 
    {
        Scanner scanner = new Scanner (System.in); 
        int rows; 
        int columns;
        int check1,check2;

        System.out.println("Enter number of rows: "); 

        rows = scanner.nextInt(); 

        System.out.println ("Now enter the number of columns: "); 

        columns = scanner.nextInt(); 

        int[][] array = new int[rows][columns]; 

        System.out.println("Enter the number to start the array: ");

        int value = scanner.nextInt(); 
        for (int i = 0; i < rows; i++)
        {
            for (int j = 0; j < columns; j++)
            {
                array[i][j]=value++;
                System.out.print(array[i][j] + "   " ); 
            }    
            System.out.println();
        }

        System.out.println("Please give one integer value to be checked in the array: "); 
        check1 = scanner.nextInt(); 

        System.out.println ("Please give a second integer value to be checked in the array: "); 

        check2 = scanner.nextInt(); 

        for ( int i = 0; i < rows; ++i ) 
        {
            for ( int j = 0; j < columns; ++j ) 
            {
                if ( array[i][j] == check1 ) 
                {
                    System.out.print(array[i][j] + " is located at address array[" + i + "," + j + "]");       
                }
                if ( array[i][j] == check2 ) 
                {
                    System.out.print("\n" + array[i][j] + " is located at address array[" + i + "," + j + "]");
                    System.out.println(); 
                }
            }
        }
    }       
}
4

4 に答える 4

2

ステップ 1: フラグを立てる

boolean check1Found = false;

ステップ 2: 値が見つかったら、フラグをtrue

if ( array[i][j] == check1 ) 
{
    System.out.print(array[i][j] + " is located at address array[" + i + "," + j + "]"); 
    check1Found = true;     
}

ステップ 3:ループが終了した後、そのフラグがまだ残っている場合はメッセージを出力しますfalse

if(check1Found == false)
{
    System.out.println("check 1 not found");
}
于 2013-11-08T18:13:15.703 に答える
1

最初は false である2 つのフラグを追加できますがbool、検索している番号が見つかると true に設定されます。

 bool foundFlag1 = false;
 bool foundFlag2 = false;

それで

if ( array[i][j] == check2 ) {
    foundFlag2 = true;
    ..
}

についても同じことを行いcheck1ます。

フラグが false の場合、それらの入力が見つからなかったことがわかります。

于 2013-11-08T18:12:00.887 に答える
1

あなたはほとんどここにいます。ここに疑似コードがあります

  1. 初期化するBoolean Flag = false;
  2. で番号を検索しarrayます。セットが見つかった場合Flag = True
  3. で番号を検索した後array、 にチェックを入れFlagます。
  4. の場合Flag = Falseは、「アドレスが見つかりませんでした」と出力します。
于 2013-11-08T18:13:16.080 に答える
1

私はこれをします:

boolean check1Flag = false;
boolean check2Flag = false;
for ( int i = 0; i < rows; ++i )
{
    for ( int j = 0; j < columns; ++j )
    {
        if ( array[i][j] == check1 ) 
        {
            System.out.println(array[i][j] + " is located at address array[" + i + "," + j + "]");       
             check1Flag = true;               
        }
        if ( array[i][j] == check2 ) 
        {
             System.out.println(array[i][j] + " is located at address array[" + i + "," + j + "]");
             check2Flag = true;
        }


     }
}
if(!check1Flag)
{
    System.out.println("Can't find " + check1);
}
if(!check2Flag)
{
    System.out.println("Can't find " + check2);
}

配列が見つかったときにフラグが true に設定されるため、いずれかが false の場合、そのアドレスは見つかりませんでした。

于 2013-11-08T18:15:52.350 に答える