• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Java Tablice + Pętla

Object Storage Arubacloud
+2 głosów
260 wizyt
pytanie zadane 12 stycznia 2022 w Java przez michal441599 Użytkownik (530 p.)

Witam mam zrobić tak żeby wczytać od użytkownika 10 liczb i potem żeby dodało je do tablicy i pokazało na wyniku końcowym tylko te liczby które są podzielne przez 3 i jestem troche w martwym punkcie ;/

package com.company;

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

public class Main {

    public static void main(String[] args) {
        int[] tablica= new int[10];
        int i;
        int t=3;
        System.out.println("Podaj 10 liczb");
        for(i=0; i< 10;i++){
            tablica[i]=getInt();
          if(tablica[i]%t==0){
                  System.out.println(tablica[i]);
              }else{System.out.println("ta liczba nie dzieli sie przez 3");}
          }System.out.println(Arrays.toString(tablica));
    }
    public static int getInt(){
        return new Scanner(System.in).nextInt();
    }
}

2 odpowiedzi

+1 głos
odpowiedź 12 stycznia 2022 przez Wiciorny Ekspert (269,590 p.)

Proszę całość zoptymalizowana pamiętaj że indeksowanie jest od 0, zatem od 0-9 będzie 10 elementów jest to też optymalniejsze niż dodatkowa rezerwa 1 elementu w pamięci 
 

int[] a=new int[9];
    Scanner sc=new Scanner(System.in);
        System.out.println("Wprowadz liczby...");
        for(int j=0;j==9;j++)
        a[j]=sc.nextInt();

dodatkowo 1 instancja skanera- nie takowe tworzenie nowego obiektu za każdym wywołaniem, potem zaczytanie odpowiednio i zapis 

0 głosów
odpowiedź 12 stycznia 2022 przez VBService Ekspert (252,660 p.)

Byłeś blisko, uporządkujmy kod.  wink

 

przykład  ( on-line )

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

public class Main {

    public static void main(String[] args) {
        int length = 10;
        int numbers[] = new int[length];

        System.out.println("Podaj " + length + " liczb");
        for (int i=0; i<length; i++)
            // Pobranie 10 liczb od użytkownika i dodanie ich do tablicy
            numbers[i] = new Scanner(System.in).nextInt();
            
        System.out.println("\nWprowadzone liczby podzielne przez 3");    
            
        for (int i=0; i<length; i++)
            // liczby które są podzielne przez 3 z pominięciem zera
            if (numbers[i] % 3 == 0 && numbers[i] != 0)
                  System.out.println(numbers[i]);
    }
}

 

komentarz 12 stycznia 2022 przez Wiciorny Ekspert (269,590 p.)
edycja 12 stycznia 2022 przez Wiciorny
   int length = 10;
   int numbers[] = new int[length];

To jest niepotrzebnie ... Boilerplate code 

komentarz 13 stycznia 2022 przez HaKIM Szeryf (87,590 p.)
IMO. zmienna length jest przydatna, gdyż została użyta 4 razy. Jeżeli ktoś będzie chciał zmienić length z 10 na 5 i nie powiąże 10 w pozostałych linijkach kodu z tą samą wartością, co jest częstsze niż się wydaje, to buga mamy gwarantowanego.
komentarz 13 stycznia 2022 przez Wiciorny Ekspert (269,590 p.)
to również możesz zmienić te wartość inline, i korzystać z numbers.length. wcale nie musisz alokować dodatkowej pamięci na prymitywna wartosc ... inta, to jest java to nie jest c++ i to jest język obiektowy a jvm nie jest wydajna

Podobne pytania

0 głosów
1 odpowiedź 280 wizyt
pytanie zadane 7 listopada 2020 w Java przez stronek1899 Nowicjusz (160 p.)
0 głosów
1 odpowiedź 516 wizyt
pytanie zadane 29 października 2020 w Java przez stronek1899 Nowicjusz (160 p.)
+2 głosów
2 odpowiedzi 283 wizyt
pytanie zadane 25 kwietnia 2022 w Java przez cfaniaczek Nowicjusz (200 p.)

92,545 zapytań

141,387 odpowiedzi

319,503 komentarzy

61,930 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...