Využij akce až 30 % zdarma při nákupu e-learningu. Více informací. Zároveň je tento týden sleva až 80 % na e-learning týkající se C# .NET
Hledáme nového kolegu do redakce - 100% home office, 100% flexibilní pracovní doba. Více informací.
Avatar
Ondra Lenikus:20.6.2020 2:00

kod:
import java.util.Scanner;

class Main {

public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int i = a ;
int a = sc.nextInt();
int b = sc.nextInt();
boolean b1 = i%3 = 0;
boolean b2 = i%5 = 0;
boolean b3 = i%3 = 0 && i%5 = 0;
for( i < b; i++;){
if(b1)
{
System.out.prin­tln("Fizz");
}
else if (b2)
{
System.out.prin­tln("Buzz");
}
else if(b3) {
System.out.prin­tln("FizzBuzz");
}
else
{
System.out.prin­tln(i);
}
}
}

}

chybový hlášní:
Compilation error
Main.java:14: error: > expected
for( i < b; i++;){
^
Main.java:14: error: not a statement
for( i < b; i++;){
^
2 errors

Zkusil jsem: nevim co je za problém takze nic

Chci docílit: FizzBuzz

 
Odpovědět
20.6.2020 2:00
Avatar
Odpovídá na Ondra Lenikus
Ondřej Šrytr:20.6.2020 2:06

Ahoj,

pokud chceš vynechat inicializaci proměnné, mělo by to vypadat takto:

for(;i < b; i++){

Vlastně středník na konci smažeš a dáš ho na začátek.

Editováno 20.6.2020 2:06
 
Nahoru Odpovědět
20.6.2020 2:06
Tento výukový obsah pomáhají rozvíjet následující firmy, které dost možná hledají právě tebe!
Avatar
Odpovídá na Ondra Lenikus
Matúš Olejník:20.6.2020 3:07

Ahoj, neviem ako sa ti to podarilo, ale na tom kóde je snáď dobre len zápis triedy a metódy main :D
Najprv do premennej i priraďuješ premennú a, ktorú však deklaruješ až riadok pod tým.
V lekciách tu na stránke by si sa dozvedel, že načítavať čísla zo Scannera by sa malo robiť spôsobom Integer.parse­Int(sc.nextLi­ne());
Riadok boolean b1 = i%3 = 0; a ďalšie, jedno = je priradenie, dve == sú porovnanie
For cyklus chceš asi aby išiel od a po b for (i = a; i < b; i++)

Hádam, že si chcel napísať niečo takéto

public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    int a = Integer.parseInt(sc.nextLine());
    int b = Integer.parseInt(sc.nextLine());

    for (int i = a; i < b; i++) {
        if (i % 3 == 0) {
            System.out.println("Fizz");
        } else if (i % 5 == 0) {
            System.out.println("Buzz");
        } else if (i % 3 == 0 && i % 5 == 0) {
            System.out.println("FizzBuzz");
        } else {
            System.out.println(i);
        }
    }
}

ale potom treba aj na tie if else dávať pozor pretože ak bude platiť napr vetva if (i % 3 == 0) tak tá spodná vetva else if (i % 3 == 0 && i % 5 == 0) už určite nezbehne.
Možno si chcel teda napísať niečo takéto

public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    int a = Integer.parseInt(sc.nextLine());
    int b = Integer.parseInt(sc.nextLine());
    boolean fizzOrBuzzFound = false;

    for (int i = a; i < b; i++) {
        if (i % 3 == 0) {
            System.out.println("Fizz");
            fizzOrBuzzFound = true;
        }
        if (i % 5 == 0) {
            System.out.println("Buzz");
            fizzOrBuzzFound = true;
        }
        if (i % 3 == 0 && i % 5 == 0) {
            System.out.println("FizzBuzz");
            fizzOrBuzzFound = true;
        }

        if(!fizzOrBuzzFound){
            System.out.println(i);
        } else {
            fizzOrBuzzFound = false;
        }
    }
}

Respektíve podľa toho čo kedy chceš vypísať si dorobíš tie podmienky.

Editováno 20.6.2020 3:09
Nahoru Odpovědět
20.6.2020 3:07
/* I am not sure why this works but it fixes the problem */
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 3 zpráv z 3.