public static void main(String[] args) { System.out.println ("Podaj liczbe"); String s = ""; Scanner x = new Scanner (System.in); s=x.next(); for (int i=s.length()-1;s.length()>=0;i--) System.out.print(s.charAt(i)+ " ,"); }
ten program wypisuje liczbe/wyraz od tyłu. czyli z kot zrobi t,o,k, ale nie rozumiem czemu jest for (int i=s.length()-1;s.length()>=0;i--) a nie moze być for (int i= s.length(); s.length()>0;i--)
Warunek w pętli jest zły,s.length() jest stałe i nigdy się nie zmieni.
Indeksowanie jest od 0, a długość stringa to liczba znaków więc mając string "kot" długość to 3 a znaki są na pozycjach 0, 1 i 2 więc nie możesz zacząć od 3 bo dostaniesz out of bounds.
mam pytanie
public static void main(String[] args) {
System.out.println ("Podaj liczbe");
String s = "";
Scanner x = new Scanner (System.in);
s=x.next();
for (int i=s.length()-1;s.length()>=0;i--)
System.out.print(s.charAt(i)+ " ,");
}
ten program wypisuje liczbe/wyraz od tyłu. czyli z kot zrobi t,o,k,
ale nie rozumiem czemu jest
for (int i=s.length()-1;s.length()>=0;i--)
a nie moze być
for (int i= s.length(); s.length()>0;i--)
@yras8: ten program się w--------a dosyć sążnie.
Warunek w pętli jest zły,s.length() jest stałe i nigdy się nie zmieni.
Indeksowanie jest od 0, a długość stringa to liczba znaków więc mając string "kot" długość to 3 a znaki są na pozycjach 0, 1 i 2 więc nie możesz zacząć od 3 bo dostaniesz out of bounds.