【问题标题】:Using text as condition in a while loop在while循环中使用文本作为条件
【发布时间】:2013-11-14 17:54:19
【问题描述】:

我在使用文本作为 while 循环的条件时遇到了一些问题,目前基本编码是:

result=struct('val','yes');

while result.val=='yes'
result.val=input('more digits?');
end

如您所见,我试图做的是只要用户输入“是”就保持循环继续进行。但这就是我遇到的问题之一;有没有办法摆脱写''的需要(例如是而不是'是')?其次,当我运行代码时,它会给我错误消息“使用 == 时出错,矩阵尺寸必须一致。”。我意识到这与“是”这个词比“否”长有关,但我不知道如何解决它。尽管考虑到程序无论如何都结束了,但这并不是一个真正的问题,但这是我想摆脱的烦恼。

【问题讨论】:

  • 这是什么语言?看起来像是 Matlab,所以我已经标记了它。
  • 对不起,我忘了提,但是是的;我们在说matlab
  • 为什么不只检查第一个字母,例如result.val(1)=='y'result.val(2)=='n'。另外,使用 strcmp 来比较字符串而不是 ==

标签: matlab loops text while-loop


【解决方案1】:

要比较字符串,请使用strcmpstrcmpi 忽略大小写。它将处理不同长度字符串的比较。例如:

strcmpi(result.val,'yes')

如果您想在输入的开头搜索一个子字符串,例如只是一个“y”,请考虑strncmpi (strncmpi(result.val,'y',1)) 或只检查第一个字符 (result.val(1))。

【讨论】:

    猜你喜欢
    • 2015-03-02
    • 1970-01-01
    • 1970-01-01
    • 2020-03-11
    • 1970-01-01
    • 1970-01-01
    • 2016-11-04
    • 1970-01-01
    • 2019-11-07
    相关资源
    最近更新 更多