@Arthaus25

Как исправить evaluated but not used в Go?

Выполняю задачу с учебника Докси:
"Напишите программу, которая выводит числа от 1 до 100. Но для кратных
трём нужно вывести «Fizz» вместо числа, для кратных пяти вывести «Buzz»,
а для кратных как трём, так и пяти «FizzBuzz»."

Реализация такая:
package main

import "fmt"

func main() {
	i := 1

	if i%3 == 0; i%5 == 0 {
		fmt.Println(i, "FizzBuzz")
		i++
	} else if i%3 == 0 {
		fmt.Println(i, "Fizz")
		i++
	} else if i%5 == 0 {
		fmt.Println(i, "Buzz")
		i++
	}
}


Консоль выводит ошибку: ./fizzBuzz.go:8:11: i % 3 == 0 evaluated but not used

Но я не могу понять, что исправить в коде. Пожалуйста, объясните нубу =)
  • Вопрос задан
  • 1204 просмотра
Решения вопроса 2
if i%3 == 0; i%5 == 0 {
Точка с запятой внутри блока if просто разделяет инструкции, выполняющиеся по порядку.
Скорее всего, вы хотели сделать так:
if i%3 == 0 && i%5 == 0 {

Но я бы ваш кусок упростил вот так:
if i%3 == 0 {
	fmt.Print(i, "Fizz")
}
if i%5 == 0 {
	fmt.Print(i, "Buzz")
}
fmt.Println("")
i++
Ответ написан
Комментировать
Sly_tom_cat
@Sly_tom_cat
.
package main

import "fmt"

func main() {
	for i := 1; i < 101; i++ {

		if i%3 == 0 || i%5 == 0 {
			if i%3 == 0 {
				fmt.Print("Fizz")
			}
			if i%5 == 0 {
				fmt.Print("Buzz")
			}
			fmt.Println()
		} else {
			fmt.Println(i)
		}
	}
}


ЗЫ и пользуйтесь нормальными отступами или gofmt, а то ваш код просто глаз режет.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы