Как написать шаблон, похожий на цикл while в Go или Golang?

Первоначально было опубликовано здесь!

Чтобы написать шаблон, похожий на цикл while в Go или Golang, вы должны использовать ключевое слово for, за которым следует условие для запуска цикла, а затем символ открывающей и закрывающей фигурных скобок ({}). В Go нет ключевого слова while для выполнения цикла while, как в других языках программирования, с которыми вы можете быть знакомы. Для выполнения цикла while в Go используется ключевое слово for.

TL;DR

package main

import "fmt"

func main(){
    // variable to hold user answer
    var userAnswer string

    // check if the `userAnswer` variable has the
    // value that is not equal to string `magic`
    // using the `for` loop.
    // The `for` loop will keep on looping
    // until the condition becomes `false`
    // this is similar to the working of a `while` loop
    for userAnswer != "magic"{
        // show the prompt to the user
        fmt.Println("Please enter the 'magic' keyword.")

        // read the value from the terminal
        fmt.Scanln(&userAnswer)
    }

    // show output when user enters the correct word
    fmt.Println("You Won The Game!")
}
Вход в полноэкранный режим Выйти из полноэкранного режима

Допустим, нам нужно создать игровую программу, в которой мы просим пользователя ввести магическое ключевое слово, если пользователь вводит слово magic, то мы должны показать пользователю, что он выиграл игру, в противном случае мы должны продолжать просить пользователя ввести слово.

Для этого нам нужен цикл for, в котором мы должны постоянно задавать вопрос Пожалуйста, введите слово "магия"..

Сначала объявим переменную, в которой будет храниться ответ пользователя.

Это можно сделать следующим образом,

package main

func main(){
    // variable to hold user answer
    var userAnswer string
}
Войти в полноэкранный режим Выйти из полноэкранного режима

Теперь давайте напишем цикл for, в котором мы напишем условие для проверки, если значение переменной userAnswer не равно значению string из magic. Только если ответ пользователя не является строкой magic, тогда нам нужно зациклиться, чтобы показать вопрос.

Это можно сделать следующим образом,

package main

func main(){
    // variable to hold user answer
    var userAnswer string

    // check if the `userAnswer` variable has the
    // value that is not equal to string `magic`
    // using the `for` loop.
    // The `for` loop will keep on looping
    // until the condition becomes `false`
    // this is similar to the working of a `while` loop
    for userAnswer != "magic"{
        // cool code here
    }
}
Войти в полноэкранный режим Выход из полноэкранного режима

Теперь нам нужно показать пользователю подсказку в терминале типа Please enter the 'magic' keyword., а затем принять значение из терминала и сохранить его в переменной userAnswer. Для этого мы можем использовать метод Scanln() из стандартного пакета fmt и передать ему в качестве аргумента адрес переменной. Метод Scanln() помогает нам считывать значения с терминала.

Это можно сделать следующим образом,

package main

import "fmt"

func main(){
    // variable to hold user answer
    var userAnswer string

    // check if the `userAnswer` variable has the
    // value that is not equal to string `magic`
    // using the `for` loop.
    // The `for` loop will keep on looping
    // until the condition becomes `false`
    // this is similar to the working of a `while` loop
    for userAnswer != "magic"{
        // show the prompt to the user
        fmt.Println("Please enter the 'magic' keyword.")

        // read the value from the terminal
        fmt.Scanln(&userAnswer)
    }
}
Войти в полноэкранный режим Выйти из полноэкранного режима

Наконец, нам нужно показать строку из You Won The Game!, как только пользователь введет правильное слово.

Это можно сделать следующим образом,

package main

import "fmt"

func main(){
    // variable to hold user answer
    var userAnswer string

    // check if the `userAnswer` variable has the
    // value that is not equal to string `magic`
    // using the `for` loop.
    // The `for` loop will keep on looping
    // until the condition becomes `false`
    // this is similar to the working of a `while` loop
    for userAnswer != "magic"{
        // show the prompt to the user
        fmt.Println("Please enter the 'magic' keyword.")

        // read the value from the terminal
        fmt.Scanln(&userAnswer)
    }

    // show output when user enters the correct word
    fmt.Println("You Won The Game!")
}
Войти в полноэкранный режим Выйти из полноэкранного режима

Если вы запустите приведенный выше код, вы увидите, что появится подсказка для ввода слова, а если вы введете любую другую строку, отличную от слова magic, он будет продолжать показывать подсказку Please enter the 'magic' keyword., что связано с тем, что условие цикла for не выполняется.

Это может выглядеть следующим образом,

Мы успешно написали цикл while, аналогичный использованию цикла for в Go. Ура 🥳!

Вот и все 😃.

Не стесняйтесь поделиться, если вы нашли это полезным 😃.


Оцените статью
devanswers.ru
Добавить комментарий