Osaisko joku sanoa mikä vikana alla olevassa ohjelmanpätkässä? Toimii muuten hyvin, mutta kun käyttäjä syöttää numeron 0 tulee seuraava tulostus:
Anna kokonaisluku: 0
0
Et antanut positiivista kokonaislukua.
Eli siis 1 nolla liikaa!
Pitäisi tulostaa vain "Et antanut positiivista kokonaislukua."
import java.util.Scanner;
public class ForToisto
{
public static void main(String [] args)
{
Scanner lukija = new Scanner(System.in);
int luku1=0;
int i=0;
System.out.print("Anna kokonaisluku: "); luku1 = lukija.nextInt(); for (i=luku1; i >= 0;)
{
System.out.println(i "");
i--;
}
if (luku1
Anna kokonaisluku: 0
0
Et antanut positiivista kokonaislukua.
Eli siis 1 nolla liikaa!
Pitäisi tulostaa vain "Et antanut positiivista kokonaislukua."
import java.util.Scanner;
public class ForToisto
{
public static void main(String [] args)
{
Scanner lukija = new Scanner(System.in);
int luku1=0;
int i=0;
System.out.print("Anna kokonaisluku: "); luku1 = lukija.nextInt(); for (i=luku1; i >= 0;)
{
System.out.println(i "");
i--;
}
if (luku1
Vastaukset 1
Vanhimmat
Ihan syvältähän toi ohjelma on.
Mutta se miks siinä on se "ylimääränen" nolla johtuu tosta for-luupista.
for (i = luku1; i >= 0;) {
System.out.println(i "");
i--;
}
Jos sä nyt annat sille nyt nollan, niin i = 0 ja ehto 0 >= 0 on tosi eli luupin koodiblokki suoritetaan.