Задать вопрос
Vilibb
@Vilibb
Пытаюсь изучить какой-либо ЯП.

Почему не работает for в golang?

Не могу понять, почему не работает код. А именно - почему на работает цикл for, по идее условие получается "пока i больше одного - делать...."
если скомпилировать и запустить код, то он просто просит ввести число и заканчивает свою работу.
package main

import "fmt"

func main() {
  var number int
  fmt.Println("Enter number: ")
  fmt.Scanf("%i",&number)
  for i:=number; i>1; i-- {
    fmt.Println(i)
  }
}
  • Вопрос задан
  • 399 просмотров
Подписаться 1 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 1
@VadimFilimonov
Ошибка заключается в том, что в методе `Scanf` используется %i вместо %d. В этом можно убедиться, если обновить код так:
_, err := fmt.Scanf("%i", &number)
if err != nil {
	fmt.Println(err) // => bad verb '%i' for integer
	return
}


Исправленный вариант будет выглядеть так:
package main

import "fmt"

func main() {
	var number int
	fmt.Println("Enter number: ")
	fmt.Scanf("%d", &number) // => Вместо %i делаем %d
	for i := number; i > 1; i-- {
		fmt.Println(i)
	}
}
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы
19 февр. 2025, в 21:51
50000 руб./за проект
19 февр. 2025, в 21:33
150000 руб./за проект
19 февр. 2025, в 21:08
30000 руб./за проект