Wątek przeniesiony 2015-01-21 17:30 z Java przez bogdans.

Tabliczka mnozenia - czy idę dobrym tropem?

0

chce samodzielnie napisac tabliczke mnozenia w javie. nie chce gotowego kodu. prosze o jakas podpowiedz, nakierowanie. mam tyle i zastanawiam sie czy ide dobrym tropem?

int a = 1;
        int b = 1;
       
        
        while(a<=10 && b<=10)
            
        {   
        int c = a*b;
        System.out.println(a +" x "+b + " = "+c);
        b++;
        
        }
0

Tabliczka mnożenia jest dwuwymiarowa, więc potrzebujesz 2 zagnieżdżonych pętli, jedna idzie po a, druga po b. Najłatwiej dwoma forami.

0

musze uzyc while

1

Pętla while działa dopóki warunek jest prawdziwy. Jeśli nie zmieniasz nic w warunku będzie się wykonywał w nieskończoność, więc w pętli while potrzebujesz zawrzeć zasady działania w momencie wyjścia z pętli - np. break lub działanie zmierzające do zmiany stanu warunku. W powyższym przypadku warunek mówi o tym : działaj dopóki a i b jest mniejsze bądź równe dziesięć. Po czym zwiększasz b i pętla będzie skończona gdy b wyniesie 11, więc niby dobrze, ale nic nie robisz z a które cały czas jest stałe, więc po co się tam znajduje? Wynikiem działania będą kolejne liczy 1,2,3..., jeśli chcesz by tabliczka wyświetlała działania do 9x9 tak jak kolega powyżej musisz zagnieździć dwie pętle (oddzielnie dla warunku a i oddzielnie dla b) przykład : a = 1 i b od 1 do 10 (pierwsze przejście pętli wyżej z a) da wyniki 1,2,3...10 następnie drugie przejście pętli z a = 2 i całe przejście pętli z b da wynik 2,4,8... itd.

0

nie rozumiem do konca. mam cos takiego ale to dalej nie to, o co mi chodzi

  int a = 0;
        int b = 1;
       
        
        while(a<=10){
            a++;
            while(b<=10){
        int c = a*b;
        System.out.println(a +" x "+b + " = "+a*b);
        b++;
            }
        
        }
0
 int a = 1;
        int b = 1;
       
        
        while(a<=10){
            
            while(b<=10){
            b = 1;    
        
        System.out.println(a +" x "+b + " = "+ a*b);
        b++;
            }
        a++;
        }

czy moze lepiej tak? ale to i tak nic mi nie daje

1

Ogólna zasada może wyglądać tak:

Pętla x = 1 to 10
    Pętla y = 1 to 10
        z = x * y
        Wyświetl z + " "
    Zakończ Pętlę y
    Wyświetl nową linię
Zakończ Pętlę x
1
  1. Sensowne wcięcia to połowa sukcesu.
  2. Jaki jest sens przypisać b = 1 w pętli wewnętrznej? Przecież b ma przyjąć kolejne wartości, a tak to tylko sprawiasz, że pętla jest nieskończona, bo b nigdy nie przejdzie przez 10.
  3. Przede wszystkim nie możesz użyć println bo to za każdym razem wypisuje w nowej linii. Przechodzisz do nowej linii dopiero po przejściu przez całą wewnętrzną pętlę.
int a = 1;
int b = 1;
 
while(a <= 10) {
    b = 1;
    while(b <= 10) {
        System.out.print(a*b + " ");
        ++b;
    }
            
    System.out.println();
    ++a;
}
0

Spróbuję zrobić listę list i jedną pętle while, nie wiem czy takie rozwiązanie nie będzie jednak trudniejsze.

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