我被困在决策方面。当答案变量为N 时(当我输入N时表示我不想在不同的行中打印文本)和标记变量是Y < / strong>(当我输入Y表示我不想打印带引号的文字)时,我收到了消息:回答&#39; Y& #39;是无效的。程序正在终止。以下是代码:
guides(colour = guide_legend(override.aes = list(shape = c(16, 17, NA))))
我做错了什么?
答案 0 :(得分:1)
二元运算符&&
的优先级高于||
这意味着这一行:
answer == "Y" && marks != "Y" || marks != "N"
相当于
(answer == "Y" && marks != "Y") || marks != "N"
因此,只要marks
与"N"
不同,语句就成立。
解决问题的方法是添加一堆括号。
answer == "Y" && (marks != "Y" || marks != "N")
答案 1 :(得分:0)
逻辑问题就在这一行:
elsif answer == "Y" && marks != "Y" || marks != "N"
您的脚本现在正在寻找(answer ==&#34; Y&#34;&amp;&amp; marks!=&#34; Y&#34;)||标记!=&#34; N&#34;。它在得到或声明之前评估和声明,因为答案是&#34; N&#34;和标记是&#34; Y&#34; (回答==&#34; Y&#34;&amp;&amp; marks!=&#34; Y&#34;)评估为真。
您希望在或表达式周围加上括号,以便上面的行变为:
elsif answer == "Y" && (marks != "Y" || marks != "N")
并且程序应该按照您的想法运作。