Как создать метод с массивом if else и foreach в java

Я изучаю java и нахожусь на очень начальном уровне. Мой вопрос: создайте 3 случайных числа и поместите их в массив. Ни один индекс в этом массиве не должен содержать 6 и 4. Затем покажите вывод массива с помощью цикла foreach. Я пытаюсь с прошлой ночи, но не могу найти решение. Пожалуйста, помогите мне решить эту проблему. Это мой код ниже:

Как создать метод с массивом if else и foreach в java

Это хорошо и все такое, но вы забыли задать вопрос. Код также должен быть размещен в виде текста в самом вопросе. Не как ссылку на изображение.

JB Nizet 22.07.2018 10:30

Разместите свой код, некоторые люди не могут видеть ваше изображение, которое прикреплено, у них ограниченный доступ в Интернет

Basil Battikhi 22.07.2018 10:57

Проблема в вашем коде в основном связана с ошибкой компиляции: вы не повторяете тип, когда передаете переменную в качестве параметра метода, просто отбрасываете int[] в подчеркнутом коде. Тогда у вас будет как минимум одна ошибка компиляции (в основном, потому что вы не объявили переменную). Но в любом случае рекурсия - не лучший способ решить эту проблему.

Andy Turner 22.07.2018 11:11
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
3
1 317
4

Ответы 4

Ошибки компиляции связаны с передачей int[] value вашему методу firstThreeDigit(). Удаление int[] value решит проблемы компиляции, но в этом случае ваш код может запускаться несколько раз для решения одной проблемы снова и снова.

Возможно, это то, чего вы хотите достичь. Попробуйте выполнить рефакторинг вашего кода следующим образом.

public static void main(String[] args){
   firstThreeDigit();
}

public static void firstThreeDigit(){
   Random rand = new Random();
   int[] firstArray = new int[3];
   int count = 0;
   while(count < 3) {
     int randomNumber = rand.nextInt(10);
     if (randomNumber != 4 && randomNumber != 6) {
        firstArray[count] = randomNumber;
        count++;
     }
   }
  for(int i : firstArray){
    System.out.println(i);
  }
}

Спасибо, Фейсал Мехмуд, сэр.

Muhammad 22.07.2018 10:44

@Muhammad Если это решило вашу проблему. Это хорошо. Добро пожаловать, братан!

malware 22.07.2018 11:08

Попробуйте удалить все вхождения 'int [] value' в исходный код. И сделайте свой метод firstThreeDigit статическим.

И пока вы занимаетесь этим, спросите себя, была ли вообще какая-то причина, по которой вы поместили их туда. Их там быть не должно.

Кроме того, вы не вызываете метод так же, как вы его объявляете. Объявление из строки 8 в порядке. Но когда вы вызываете метод, не включайте тип

неправильный:

firstThreeDigit(int[] value);

верный:

int[] value = new int[]{1,2,3};
firstThreeDigit(value);

В любом случае их вообще не должно быть в этом коде.

это ответ? что это такое ?

Basil Battikhi 22.07.2018 10:55

@BasilBattikhi Да, это ответ, но я полагаю, что это не имеет особого смысла, если вы не видите его снимок экрана с кодом.

dancesWithCodes 22.07.2018 11:01

Вот образец, который может дать вам результат, который вы ищете:

int[] nums = new int[3];

    for(int x = 0; x < nums.length; x++) {
        int num = (int) (Math.random() * 10 + 1);
        if (num == 6 | num == 4) {
              x--;
              continue;
        }
         else
        nums[x] = num;
        System.out.println(Arrays.toString(nums));
      }

Что мы можем сделать здесь, так это создать новое случайное число каждый раз в цикле. Если число равно 6 или 4, мы активируем оператор continue, чтобы начать цикл заново, а также вычтем -1 из x, чтобы цикл не запускался снова. Если сгенерированное случайное число не равно 6 или 4, мы сохраним это число в массиве с индексом, который соответствует итерации, на которой мы находимся. Каждый раз в цикле мы можем распечатать обновленный массив. Если вы хотите сначала создать случайные числа:

int x = 0;
int y = 0;
int z = 0;
int count = 0;
boolean isRunnin = true;

while(isRunnin) {
    int num = (int) (Math.random() * 10 + 1);
    if (num == 6 | num == 4) {
        continue;
    }
    else {
        if (count == 0) {
            x = num;
        }
        else if (count == 1) {
            y = num;
        }
        else if (count == 2) {
            z = num;
        }
    }
    count++;
    if (count > 2) {
        isRunnin = false;
    }


}
System.out.println(x);
System.out.println(y);
System.out.println(z);

Это сгенерирует три случайных числа, а затем вы можете поместить эти числа в массив в цикле for.

ниже должно работать

public static void main(String[] args) 
{
    firstThreeDigits() ;
}

public static void firstThreeDigits() 
{
    Random randomNumber= new Random();
    int[] firstArray= new int[3];
    for (int i = 0,j=0; ;j++) //i for array index and j for running loop until we get 3 numbers which are not 4 or 6
    {  
        int number=randomNumber.nextInt(10);
        if (!(number==4||number==6)) //if random number is NOT 4 or 6
        {
            firstArray[i]=number; // add to array
            i++;
            if (i==3) // print three number from array and break the loop
            {
                for(int num:firstArray)
                {
                    System.out.println(num);
                }
                break;
            }
        }
    }
}

Другие вопросы по теме

Похожие вопросы

В чем разница между созданием объекта внутри класса, но вне метода и созданием объекта внутри метода
Регулярное выражение, проверяющее восемь или более символьных строк, которые должны содержать как минимум два неалфавитных символа
Данные java не отображаются в jsp viw при переходе с контроллера весной
ClassName анонимного внутреннего класса такое же - obj.getClass (). GetName ()
Есть ли какой-либо плагин Java, который может автоматически использовать установщик геттера (если он предоставлен) вместо object.field?
Использование BlueCove-DBus на ARM. Ошибка компоновщика между библиотекой C и кодом Java (JNI) в Linux
Сообщение HTTP, требующее ассоциативного массива в Java
Загрузить текстовый документ в Java
Java - сравнение имен со списком имен с использованием операторов if / else и switch
Citrus Framework: я получаю исключение NoSuchBeanDefinitionException для тестирования образца JMS, предоставленного Кристофером