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

Problem przy pętli do while

0 głosów
1,255 wizyt
pytanie zadane 3 maja 2017 w Java przez fiszu258 Początkujący (440 p.)
Cześć, mam problem przy ostatniej pętli do while, jakby ktoś mógł zlokalizować błąd byłbym wdzięczny, w pętli while wychodzi 60 ( w przypadku cyfr 4 i 11) w for tak samo a w do...while wychodzi 12. Z góry dzięki.

import java.util.Scanner;

/**
 * Created by Dominik on 03.05.2017.
 */

//2. 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

public class Zadanie_2 {
    public static void main (String[] args) {
        Scanner s = new Scanner(System.in);
        int suma = 0;
        System.out.print("Podaj liczbe: ");
        int a = s.nextInt();
        System.out.print("Podaj drugą liczbę: ");
        int b = s.nextInt();
        for (int c=a;c<=b;c++){
            suma = suma + c;
        }
        System.out.println(suma);
        suma = 0;
        while (a<=b){
            suma = suma+a;
            a++;
        }
        System.out.println(suma);
        suma = 0;
        do {
            suma = suma + a;
            a++;
        }
        while(suma<=b);
        System.out.println(suma);
        }
    }

 

3 odpowiedzi

0 głosów
odpowiedź 3 maja 2017 przez Stami Gaduła (3,790 p.)

W pętli do while do sumy dodajesz "a", a sprawdzasz warunek b.

Jeśli dobrze rozumiem to to powinno wyglądać tak:
 

do {
      suma = suma + a;
      a++;
}
while(suma <= a)

 

komentarz 3 maja 2017 przez fiszu258 Początkujący (440 p.)
niestety nie, jakoby nie był ten warunek to i tak nie wychodzi :/
0 głosów
odpowiedź 4 maja 2017 przez jegor377 Stary wyjadacz (13,230 p.)

powinno być w trzeciej pętli:

do {
    suma = suma + a;
    a++;
} while(suma<b);

 

0 głosów
odpowiedź 4 maja 2017 przez Włóczykij Użytkownik (750 p.)

A nie powinno być:

do {
        suma = suma + a;
        a++;
}
while(a <= b)

 

Podobne pytania

0 głosów
1 odpowiedź 853 wizyt
0 głosów
1 odpowiedź 302 wizyt
pytanie zadane 20 marca 2016 w Java przez jocom Początkujący (390 p.)
0 głosów
1 odpowiedź 225 wizyt
pytanie zadane 20 października 2018 w C i C++ przez periedynek Obywatel (1,320 p.)

93,771 zapytań

142,731 odpowiedzi

323,383 komentarzy

63,371 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

Twierdza Linux. Bezpieczeństwo dla dociekliwych

Aby uzyskać rabat -10%, użyjcie kodu pasja-linux, wpisując go w specjalne pole w koszyku.

...