Mam taki kod, pisałem go parę razy samemu, czytałem dokumentację i również posiłkowałem się stackiem oraz dokumentacją...
import java.util.Scanner;
public class PoprawnaLiczbaNaturalna {
public static void main(String[] args) {
char znak;
Scanner sc = new Scanner(System.in);
System.out.print("liczba naturalna: ");
String liczba = sc.nextLine();
boolean liczbaOK = true;
for (int i=0; i<liczba.length(); i++) {
znak = liczba.charAt(i);
if (!Character.isDigit(znak))
liczbaOK = false;
}
if (liczbaOK) {
System.out.printf("ciąg \'%s\' jest liczbą",liczba);
}
else {
System.out.printf("ciąg \'%s\' nie jest liczbą",liczba);
}
}
}
Rozumiem po kolei składnię, aczkolwiek mam problem z...
- Dlaczego
boolean liczbaOK = true;
jest zadeklarowane przed całą pętlą i od razu jest przypisana wartość "true", aniżeli przed pętlą samo
boolean liczbaOK;
a dopiero potem w pętli deklaracja w if'ach (false, true)
- W tej składni mam rozumieć, że działa to na zasadzie, że najpierw wyświetlana jest wartość true, a potem false i zawsze tak jest, tak jeżeli chodzi o boolean?
if (liczbaOK) {
System.out.printf("ciąg \'%s\' jest liczbą",liczba);
}
else {
System.out.printf("ciąg \'%s\' nie jest liczbą",liczba);
}