PowerShell:为什么while()语句永远循环?

 beitianmolang 发布于 2023-02-12 18:07

为什么以下while语句永远循环?我想在用户输入"是"或"否"后突破.其他一切都应该让他留在输入循环中.

while ($input -ne "yes" -or $input -ne "no") {
    $input = Read-Host "Ready to process? [yes|no]"

    switch ($input) {
        yes { 
            write-host "yes"    
        }

        no  { 
            write-host "no" 
        }

        default { 
            write-host "input not understood" 

        }
    }  
}

Bathsheba.. 7

让我们解开逻辑:

1)如果输入为"是",则它不等于"否".

2)如果输入为"否",则它不等于"是".

3)如果它既不是"是"也不是"否",那么它不等于"是"或"否".

因此while ($input -ne "yes" -or $input -ne "no") {总是如此.所以它永远循环.

我想你的意思是

while ($input -ne "yes" -and $input -ne "no") {

有趣的是,你在这里可以用德摩根定律表达.见http://en.wikipedia.org/wiki/De_Morgan%27s_laws

1 个回答
  • 让我们解开逻辑:

    1)如果输入为"是",则它不等于"否".

    2)如果输入为"否",则它不等于"是".

    3)如果它既不是"是"也不是"否",那么它不等于"是"或"否".

    因此while ($input -ne "yes" -or $input -ne "no") {总是如此.所以它永远循环.

    我想你的意思是

    while ($input -ne "yes" -and $input -ne "no") {
    

    有趣的是,你在这里可以用德摩根定律表达.见http://en.wikipedia.org/wiki/De_Morgan%27s_laws

    2023-02-12 18:09 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有