Bu programda, Java'da bir numaranın palindrome olup olmadığını kontrol etmeyi öğreneceksiniz. Bu, for ve while döngüsü kullanılarak yapılır.
Bu örneği anlamak için, aşağıdaki Java programlama konuları hakkında bilgi sahibi olmalısınız:
- Java if… else İfadesi
- Java sırasında ve yap… Döngü sırasında
- Döngü için Java
Örnek 1: while döngüsünü kullanarak Palindrome'u Kontrol Etme Programı
public class Palindrome ( public static void main(String() args) ( int num = 121, reversedInteger = 0, remainder, originalInteger; originalInteger = num; // reversed integer is stored in variable while( num != 0 ) ( remainder = num % 10; reversedInteger = reversedInteger * 10 + remainder; num /= 10; ) // palindrome if orignalInteger and reversedInteger are equal if (originalInteger == reversedInteger) System.out.println(originalInteger + " is a palindrome."); else System.out.println(originalInteger + " is not a palindrome."); ) )
Çıktı
121, bir palindrom numarasıdır.
Bu programda,
- İlk olarak, verilen sayının (num) değeri başka bir tamsayı değişkeninde, originalInteger'da saklanır. Bunun nedeni, sondaki ters sayı ile orijinal sayının değerlerini karşılaştırmamız gerektiğidir.
- Daha sonra, 0'a eşit olana kadar num üzerinden döngü yapmak için bir while döngüsü kullanılır.
- Her yinelemede, num'un son basamağı kalan kısımda saklanır.
- Daha sonra, kalan, bir sonraki basamak değerine eklenecek şekilde reversedInteger'a eklenir (10 ile çarpma).
- Ardından, son rakam 10'a bölündükten sonra num'dan çıkarılır.
- Son olarak reversedInteger ve originalInteger karşılaştırılır. Eşit ise, bir palindrom numarasıdır. Değilse, değildir.
İşte gerçekleşen yürütme adımları:
Palindrome yürütme adımlarınum | num! = 0 | kalan | reversedInteger |
---|---|---|---|
121 | doğru | 1 | 0 * 10 + 1 = 1 |
12 | doğru | 2 | 1 * 10 + 2 = 12 |
1 | doğru | 1 | 12 * 10 + 1 = 121 |
0 | yanlış | - | 121 |
Örnek 2: for döngüsünü kullanarak Palindrome'u Kontrol Etme Programı
public class Palindrome ( public static void main(String() args) ( int num = 11221, reversedInteger = 0, remainder, originalInteger; originalInteger = num; // reversed integer is stored in variable for( ;num != 0; num /= 10 ) ( remainder = num % 10; reversedInteger = reversedInteger * 10 + remainder; ) // palindrome if orignalInteger and reversedInteger are equal if (originalInteger == reversedInteger) System.out.println(originalInteger + " is a palindrome."); else System.out.println(originalInteger + " is not a palindrome."); ) )
Çıktı
11221 bir palindrom değildir.
Yukarıdaki programda while döngüsü yerine for döngüsü kullanılır.
Her yinelemede num /= 10
yürütülür ve koşul num !=0
kontrol edilir.