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

Tabliczka mnozenia - czy idę dobrym tropem?

2015-01-21 17:15
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++;

        }

Pozostało 580 znaków

2015-01-21 17:21
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.

Pozostało 580 znaków

2015-01-21 17:44
0

musze uzyc while

najłatwiej nie znaczy, że koniecznie musisz fora użyć - twonek 2015-01-21 17:48

Pozostało 580 znaków

2015-01-21 17:52
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.


Jestem początkujący.

Pozostało 580 znaków

2015-01-22 11:37
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++;
            }

        }
edytowany 1x, ostatnio: jabluszko, 2015-01-22 11:44

Pozostało 580 znaków

2015-01-22 12:47
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

Pozostało 580 znaków

2015-01-22 12:52
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

The quieter you become, the more you are able to hear.

Pozostało 580 znaków

2015-01-22 13:01

0) Sensowne wcięcia to połowa sukcesu.
1) 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.
2) 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;
}

Pozostało 580 znaków

2015-01-22 23:46
0

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

Pozostało 580 znaków

Liczba odpowiedzi na stronę

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