Вопрос или проблема
package main
import "fmt"
func main() {
var n1, n2 int
fmt.Scanln(&n1)
fmt.Scanln(&n2)
switch {
case n1 > n2:
fmt.Println("Первое число больше второго")
case n1 < n2:
fmt.Println("Второе число больше первого")
case n1 == n2:
fmt.Println("Числа равны")
}
}
когда n1 < n2
, должен печатать текст, но он этого не делает
Ответ или решение
Проблема, описанная вами, связана с использованием оператора switch
в вашем коде на языке Go. Давайте рассмотрим ваш код и выясним, почему он не работает так, как ожидается.
Вот ваш исходный код:
package main
import "fmt"
func main() {
var n1, n2 int
fmt.Scanln(&n1)
fmt.Scanln(&n2)
switch {
case n1 > n2:
fmt.Println("Первое число больше второго")
case n1 < n2:
fmt.Println("Второе число больше первого")
case n1 == n2:
fmt.Println("Числа равны")
}
}
Причина проблемы
Ваш код выглядит корректно и должен выполнять свою задачу, если введены два целых числа. Однако, существующая проблема может быть вызвана следующими факторами:
-
Неправильный ввод данных: Если при вводе данных в программе вы не вводите целые числа или вводите их в неправильном формате (например, символы вместо чисел),
fmt.Scanln
не сможет прочитать их, и переменныеn1
иn2
могут оставаться неинициализированными. -
Обработка ошибок: В вашем коде не обрабатывается возможная ошибка, возникающая при вводе данных. Это означает, что в случае некорректного ввода программа может просто перейти к завершению.
Решение
- Убедитесь, что вводимые данные — это именно целые числа. Для улучшения надежности программы, добавьте обработку ошибок:
package main
import "fmt"
func main() {
var n1, n2 int
fmt.Print("Введите первое число: ")
_, err := fmt.Scanln(&n1)
if err != nil {
fmt.Println("Ошибка ввода для первого числа:", err)
return
}
fmt.Print("Введите второе число: ")
_, err = fmt.Scanln(&n2)
if err != nil {
fmt.Println("Ошибка ввода для второго числа:", err)
return
}
switch {
case n1 > n2:
fmt.Println("Первое число больше второго")
case n1 < n2:
fmt.Println("Второе число больше первого")
case n1 == n2:
fmt.Println("Числа равны")
}
}
- Дополнительные проверки перед выполнением операции сравнения могут помочь понять, какой именно ввод вызывает проблему.
Заключение
Перепроверьте вводимые данные и добавьте обработку ошибок, как показано выше. Это должно решить вашу проблему с выводом и сделать код более надежным. Если проблема персистирует, проверьте окружение выполнения вашей программы, возможно, оно также может вызывать неожиданные ошибки.