Barais_19 Ответов: 1

Проблема с булевым divisibleby10(int x)


У меня есть проблема с моим заявлением, делимым на 10. Я должен был проверить, делится ли число в массиве на 10. Но почему-то получается, что ложные числа делятся на 10. На самом деле я установил его как int, но затем мне пришлось изменить его с int на boolean.

Что я уже пробовал:

package journal.pkg5a;

/**
 *
 * @author stephenwessels
 */
import javax.swing.*;
import java.util.Random;
public class Journal5A 
{
    
public int[] createArray(int size) 
{

    Random rnd = new Random();
    int[] array = new int[size];
    
    for(int i = 0; i < array.length; i++) 
        array[i] = rnd.nextInt(101);
        return array; 
}

public void printArray() 
{
    Journal5A c = new Journal5A();
    int[] myArray = c.createArray(10);
    

    for(int i = 0; i < myArray.length; i++) 
    {
        System.out.println(myArray[i]);
        System.out.println("There is " + c.divisibleby10(i) + " numbers that are divisible by 10");
    }
}
  public boolean divisibleby10(int x) 
  {
    return x % 10 == 0 ? true : false;
  }   
    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) 
    {
        Journal5A c = new Journal5A();
        Random r = new Random();
        

        c.printArray();
    }
}

PIEBALDconsult

Вернуть true. Сделано.

Проверьте порядок ваших операций.

Jon McKee

Меня немного смущает ваша программа. Похоже, что вы пытаетесь подсчитать числа, которые делятся на 10, с помощью функции, которая просто проверяет, делится ли одно число на 10. Также вам не нужен тернарный оператор?:. x % 10 == 0 является ли булевым условием уже из-за оператора равенства ==.

1 Ответов

Рейтинг:
2

CPallini

Попробуй

import java.util.Random;
public class Journal5A
{

  public int[] createArray(int size)
  {

    Random rnd = new Random();
    int[] array = new int[size];

    for(int i = 0; i < array.length; i++)
      array[i] = rnd.nextInt(101);
    return array;
  }

  public void printArray()
  {
    int[] myArray = createArray(10);

    int count = 0;

    for(int i = 0; i < myArray.length; i++)
    {
        boolean isDivisible = divisibleby10(myArray[i]);
        if ( isDivisible )
        {
          System.out.printf("%d is divisible by 10\n", myArray[i]);
          ++count;
        }
        else
          System.out.printf("%d is not divisible by 10\n", myArray[i]);
    }
    System.out.printf("There are %d numbers that are divisible by 10\n", count);
  }
  public boolean divisibleby10(int x)
  {
    return x % 10 == 0;
  }
  public static void main(String[] args)
  {
    Journal5A c = new Journal5A();
    c.printArray();
  }
}


Barais_19

Спасибо! Теперь я во всем разобрался.