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

pętla for inkrementacja zmiennej

Object Storage Arubacloud
0 głosów
833 wizyt
pytanie zadane 15 września 2019 w Java przez jasper93 Obywatel (1,310 p.)

Witam, mam problem ze zrozumieniem inkrementacji, generalnie mam jedną zmienną "a" do której przypisuję zmienną suma. Problem jest, gdy zmienię wartość z suma=suma+i na suma=a+i, program wyświetla inne wartości. Tylko nie rozumiem tego sposobu działania. Będę wdzięczny za wyjaśnienie :)

 

public class petla {
    public static void main(String[] args) {
        Scanner one = new Scanner(System.in);
        System.out.println("Podaj liczbe a: ");
        int a = one.nextInt();
        System.out.println("Podaj liczbe b: ");
        int b = one.nextInt();
        int suma = a;
        for(int i = 1; suma+1<=b; i++)
        {
            suma= suma+i;
            System.out.println(suma);
        }


    }
}
komentarz 15 września 2019 przez SimiVoid Pasjonat (19,790 p.)
Nie wiem co tu wyjaśniać. Wyświetlasz zmienną suma, która w jednym przypadku jest powiększona o i, a w drugim jest równa a + i, jednocześnie zmieniasz wartość zmiennej suma.

1 odpowiedź

0 głosów
odpowiedź 15 września 2019 przez DevLukiLL Obywatel (1,050 p.)
wybrane 15 września 2019 przez jasper93
 
Najlepsza

Zauważ, że jeżeli w środku pętli użyjesz:

suma=suma+i

to ta suma będzie powiększana o 'itą' wartość z pętli, a jeżeli podstawiasz 

suma=a+i

to a jest stałą wartości wczytaną przez użytkownika czyli cały czas tą stałą powiększasz o "itą" wartość.

Na przykładzie jak podstawimy za a = 2 b =5: 

Przy 1 kroku pętli w pierwszym przypadku otrzymasz suma = 2 + 1,

Przy drugim obrocie pętli otrzymasz suma = 3 + 2.

Zaś przy drugim przypadku otrzymasz suma = 2+1,ale przy drugim obrocie pętli suma = 2+2, ponieważ to 'a' nigdzie nie inkrementujesz, jest ono stałe.

komentarz 15 września 2019 przez jasper93 Obywatel (1,310 p.)
Rozumiem, budując ten program mam do rozwiązania taki problem:

Napisać program pobierający od użytkownika dwie liczby całkowite A oraz B, A < B, a następnie wyznaczający sumę ciągu liczb od A do B, czyli sumę ciągu (A, A + 1, . . . , B). Obliczenia należy wykonać trzykrotnie stosując kolejno pętle: while, do-while, for. Przykład: Dla A = 4 i B = 11 program powinien wyświetlić: 60 60 60. Ciężko mi dojść do rozwiązania.

Podobne pytania

0 głosów
1 odpowiedź 432 wizyt
pytanie zadane 4 lutego 2016 w Java przez JKluseczka Obywatel (1,430 p.)
0 głosów
0 odpowiedzi 316 wizyt
pytanie zadane 23 listopada 2019 w C i C++ przez Mavimix Dyskutant (8,390 p.)
0 głosów
2 odpowiedzi 1,486 wizyt
pytanie zadane 5 lutego 2023 w C i C++ przez Jerzy Użytkownik (930 p.)

92,536 zapytań

141,377 odpowiedzi

319,456 komentarzy

61,922 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!

...