Pytanie: Czy da się w pętli?

0

Witam.
Mam takie proste zadanko:Napisać program, który działa w sposób następujący: użytkownik wprowadza po kolei 10 liczb, program wyprowadza na konsoli sumę tymczasową liczb (od pierwszej do aktualnej wprowadzonej) i sumę końcową. Wygląda to tak:

       Wprowadź liczbę nr 1:
       1
       1 = 1
       Wprowadź liczbę nr 2:
       2
       1+2=3
       Wprowadź liczbę nr 3:
       3
       1+2+3=6
        ...
       Wprowadź liczbę nr 10:
       10
       1+2+3+4+5+6+7+8+9+10=55
       Suma = 55

I rozwiązanie go takie napisałem:

import javax.swing.JOptionPane;
public class zad2 {
	public static void main (String[] args) {
		
		JOptionPane.showMessageDialog(null, "Podaj kolejno 10 liczb typu int");
		String l1 = JOptionPane.showInputDialog("Liczba 1");
		int a = Integer.parseInt(l1);
		int wynik = a;
		JOptionPane.showMessageDialog(null, a+"+"+a+"="+wynik);
		
		String l2 = JOptionPane.showInputDialog("Liczba 2");
		int b = Integer.parseInt(l2);
		wynik = a + b;
		JOptionPane.showMessageDialog(null, a+"+"+b+"="+wynik);
		
		String l3 = JOptionPane.showInputDialog("Liczba 3");
		int c = Integer.parseInt(l3);
		wynik = a + b + c;
		JOptionPane.showMessageDialog(null, a+"+"+b+"+"+c+"="+wynik);
		
		String l4 = JOptionPane.showInputDialog("Liczba 4");
		int d = Integer.parseInt(l4);
		wynik = a + b + c + d;
		JOptionPane.showMessageDialog(null, a+"+"+b+"+"+c+"+"+d+"="+wynik);
		
		String l5 = JOptionPane.showInputDialog("Liczba 5");
		int e = Integer.parseInt(l5);
		wynik = a + b + c + d + e;
		JOptionPane.showMessageDialog(null, a+"+"+b+"+"+c+"+"+d+"+"+e+"="+wynik);
		
		String l6 = JOptionPane.showInputDialog("Liczba 6");
		int f = Integer.parseInt(l6);
		wynik = a + b + c + d + e + f;
		JOptionPane.showMessageDialog(null, a+"+"+b+"+"+c+"+"+d+"+"+e+"+"+f+"="+wynik);
		
		String l7 = JOptionPane.showInputDialog("Liczba 7");
		int g = Integer.parseInt(l7);
		wynik = a + b + c + d + e + f + g;
		JOptionPane.showMessageDialog(null, a+"+"+b+"+"+c+"+"+d+"+"+e+"+"+f+"+"+g+"="+wynik);
		
		String l8 = JOptionPane.showInputDialog("Liczba 8");
		int h = Integer.parseInt(l8);
		wynik = a + b + c + d + e + f + g + h;
		JOptionPane.showMessageDialog(null, a+"+"+b+"+"+c+"+"+d+"+"+e+"+"+f+"+"+g+"+"+h+"="+wynik);
		
		String l9 = JOptionPane.showInputDialog("Liczba 9");
		int i = Integer.parseInt(l9);
		wynik = a + b + c + d + e + f + g + h + i;
		JOptionPane.showMessageDialog(null, a+"+"+b+"+"+c+"+"+d+"+"+e+"+"+f+"+"+g+"+"+h+"+"+i+"="+wynik);
		
		String l10 = JOptionPane.showInputDialog("Liczba 10");
		int j = Integer.parseInt(l10);
		wynik = a + b + c + d + e + f + g + h + i + j;
		JOptionPane.showMessageDialog(null, a+"+"+b+"+"+c+"+"+d+"+"+e+"+"+f+"+"+g+"+"+h+"+"+i+"+"+j+"="+wynik);
		
		JOptionPane.showMessageDialog(null, "Suma = "+wynik);
	}
}

Tylko to strasznie długo się wydaję i zastanawiam się czy jest możliwość zrobienia tego w pętli. Jeśli tak to w której?

1

Primo: Nie widzę nigdzie odwołania do konsoli, wszędzie jest Swing.

Secundo: Tak, da się. Nieważne której użyjesz, bo każdej możesz używać wymiennie (oczywiście po odpowiednich modyfikacjach). Najbardziej narzucającą się tutaj pętlą jest for (int i = 0; i < 10; i++).

Tertio: Do wczytywania danych z konsoli użyj np: obiektu new Scanner(System.in) i jego metod np nextInt().

0

Ba nawet bez tablicy się da (o ile napis nie zaliczamy jako tablicę):

int suma=0;
String text="";
for (int i=0;i<10;++i)
  {
   WyswietlKomunikat("Wprowadź liczbę nr ",i+1);
   int x;
   x=WczytajLiczbe();
   if(text.length>0) text+="+";
   text+=Integer.toString(x);
   suma+=x;
   WyswietlKomunikat(text+"=",suma);
  }
WyswietlKomunikat("Suma = ",Suma);
0

Hmmm... A widziałeś wynik działania tego co napisałeś... przepisałem to ja Jave i nie dość że te +1 na początku pętli jest nie potrzebne to i = 1 ; i <=10
I ostatecznie Sumuje same zera

0

To chyba źle przepisałeś na Javę. Proponuję żebyś zostawił pętlę w takiej postaci;

for(int i=0;i<10;i++)

Przyzwyczajaj się do indeksowania od zera, unikniesz w przyszłości głupich błędów przekroczenia zakresu tablicy (kolekcji).

1 użytkowników online, w tym zalogowanych: 0, gości: 1