-2

Q: main メソッドで開始整数と終了整数を取得します。これらの 2 つの値を別の関数に渡します。これらの値の間のすべての数値 (包括的) を返します。これは、3 で割り切れます。関数からメインに戻します。 私は次のことをしました:

import java.util.*;
public class inbetween {
    public static void main (String[]args) {
        Scanner in = new Scanner (System.in);
        System.out.println("Enter range of values");
        int x =in.nextInt();
        int y =in.nextInt();
        search(x,y);

    }

    public static void search(int a, int b) {
          int length = (b-a)+1;
        int [] arr = new int [length];
        for(int i=0; i<length; i++)
        {
          a = a+1;
         int c;
         // int count=0;
          c = a%3;
          if (c==0) {
              arr[i] = a;
          System.out.println(arr[i]);
       //   count = count+1;
       //   return count;

        }
        }
    }
}

今私の質問は..どうすれば配列を返し、それを関数に出力してそこに出力できますか??? このコードは機能しますが、この場合、値は関数自体に出力されます(ただし、メインに出力する必要があります)...

4

3 に答える 3

0

配列をメインに返す必要があります。

package com.stackoverflow.homework;

import java.util.Arrays;
import java.util.Scanner;

public class Homework {

    public static void main(String[] args) {
        int[] result;
        Scanner in = new Scanner(System.in);

        System.out.println("Enter range of values: ");
        int x = in.nextInt();
        int y = in.nextInt();

        result = findNumbersBetween(x,y);

        for(int i=0; i<result.length; i++) {
            System.out.println(result[i]);
        }

    }

    private static int[] findNumbersBetween(int a, int b) {
        int[] temp = new int[(b-a)+1];
        int x = a;
        int i = 0;

        while(x <= b) {
            if(x % 3 == 0) {
                temp[i] = x;
                i++;
            }

            x++;
        }

        return Arrays.copyOfRange(temp, 0, i);
    }
}

また、クラス名の最初の文字は常に大文字にする必要があることに注意してください。

于 2013-09-10T13:58:26.910 に答える