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

Pętla for z BigInteger'em

0 głosów
658 wizyt
pytanie zadane 4 lutego 2016 w Java przez JKluseczka Obywatel (1,430 p.)

Witam,

mam taki kod:

for(BigInteger i = new BigInteger("0");-1==i.compareTo(n);i.add(one)){
}

n to liczba, do której chcę odliczać(oczywiście typu BigInteger, zadeklarowana w argumantach) i one to liczba 1 (zadeklarowana w klasie jako public static BigInteger). Podczas uruchomienia tej pętli cały czas powtarzana jest z licznikiem równym 0. Czym to jest spowodowane i jak mógłbym naprawić ten błąd?

1 odpowiedź

+3 głosów
odpowiedź 4 lutego 2016 przez Javowiec Pasjonat (21,560 p.)
wybrane 5 lutego 2016 przez JKluseczka
 
Najlepsza

Obiekty BigInteger są niezmienialne tak samo jak obiekty String (napisy). Oznacza to, że gdy już raz utworzyłeś taki obiekt, nie możesz zmienić wartości jego pola/pól.

Oznacza to, że:

i.add(one)

nie zmienia zmiennej i, ponieważ ta metoda zwraca nowy obiekt BigInteger, który jest wynikiem operacji i + one ! Musisz nadpisać zmienną i, aby Twoja pętla zadziałała:

i = i.add(one)
komentarz 5 lutego 2016 przez JKluseczka Obywatel (1,430 p.)
Dzięki wielkie! Strasznie długo się nad tym męczyłem... :)

Podobne pytania

+1 głos
2 odpowiedzi 1,124 wizyt
pytanie zadane 27 lutego 2021 w JavaScript przez Darth Vader Początkujący (270 p.)
0 głosów
1 odpowiedź 245 wizyt
pytanie zadane 28 października 2018 w JavaScript przez warzywko13 Użytkownik (840 p.)
0 głosów
1 odpowiedź 1,044 wizyt
pytanie zadane 26 lutego 2018 w C i C++ przez pawel33335555 Początkujący (440 p.)

93,425 zapytań

142,421 odpowiedzi

322,647 komentarzy

62,787 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

VMware Cloud PRO - przenieś swoją infrastrukturę IT do chmury
...