W tym programie nauczysz się odwracać liczbę za pomocą pętli while i pętli for w Javie.
Aby zrozumieć ten przykład, należy znać następujące tematy dotyczące programowania w języku Java:
- Java while i zrób… while Loop
- Java for Loop
Przykład 1: Odwróć liczbę za pomocą pętli while w Javie
public class ReverseNumber ( public static void main(String() args) ( int num = 1234, reversed = 0; while(num != 0) ( int digit = num % 10; reversed = reversed * 10 + digit; num /= 10; ) System.out.println("Reversed Number: " + reversed); ) )
Wynik
Odwrócony numer: 4321
W tym programie pętla while służy do odwrócenia liczby, jak podano w następujących krokach:
- Po pierwsze, pozostała część liczby podzielona przez 10 jest przechowywana w zmiennej cyfry. Teraz cyfra zawiera ostatnią cyfrę num, czyli 4.
cyfra jest następnie dodawana do zmiennej odwróconej po pomnożeniu jej przez 10. Mnożenie przez 10 dodaje nowe miejsce w odwróconej liczbie. Jedno miejsce pomnożone przez 10 daje dziesiąte miejsce, dziesiąte - setne i tak dalej. W tym przypadku odwrócony zawiera 0 * 10 + 4 = 4.
num jest następnie dzielony przez 10, więc teraz zawiera tylko pierwsze trzy cyfry: 123. - Po drugiej iteracji cyfra równa się 3, odwrócona równa się 4 * 10 + 3 = 43 i num = 12
- Po trzeciej iteracji cyfra równa się 2, odwrócona równa się 43 * 10 + 2 = 432, a liczba = 1
- Po czwartej iteracji cyfra równa się 1, odwrócona równa się 432 * 10 + 1 = 4321 i num = 0
- Teraz num = 0, więc wyrażenie testowe
num != 0
kończy się niepowodzeniem i pętla while kończy działanie. odwrócony zawiera już odwróconą liczbę 4321.
Przykład 2: Odwróć liczbę za pomocą pętli for w Javie
public class ReverseNumber ( public static void main(String() args) ( int num = 1234567, reversed = 0; for(;num != 0; num /= 10) ( int digit = num % 10; reversed = reversed * 10 + digit; ) System.out.println("Reversed Number: " + reversed); ) )
Wynik
Odwrócony numer: 7654321
W powyższym programie pętla while jest zastępowana pętlą for, gdzie:
- nie jest używane żadne wyrażenie inicjujące
- wyrażenie testowe pozostaje takie samo (
num != 0
) - wyrażenie aktualizacji / inkrementacji zawiera
num /= 10
.
Tak więc po każdej iteracji uruchamiane jest wyrażenie update, które usuwa ostatnią cyfrę num.
Kiedy pętla for wychodzi, pozycja reverse będzie zawierała odwróconą liczbę.