首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如果或声明不起作用

如果或声明不起作用
EN

Stack Overflow用户
提问于 2022-09-25 06:32:50
回答 1查看 35关注 0票数 0

大家好,我遇到了一个我无法解释的错误。场景如下,我有两个收集信息的输入框。如果没有输入值,我希望If语句处理它并导致中断。输入框还具有一个"x“来关闭该框,该框返回"Cancel”值。我要做的是捕获一个条件,如果没有输入值或通过取消,就会发生中断。现在,问题是谷歌完全忽略了或声明。我每个人都知道,我的IF逻辑可以工作,但是如果加上OR,它就不能识别这种情况。

这是我目前的代码:

代码语言:javascript
运行
AI代码解释
复制
          var propnumber = Browser.inputBox('Enter RFI/RFQ Number', Browser.Buttons.OK);
          
          if(propnumber != "" || propnumber != 'cancel'){} else{
            SpreadsheetApp.getActiveSpreadsheet().toast('You must enter a value')
            return
          };
          var myName = Browser.inputBox("Enter the Component Name",Browser.Buttons.OK_CANCEL);

          if(myName != 'cancel')
          {
                  I do something
          }

正如我在描述中提到的,我的propnumber条件忽略了or,并且总是接受cancel或空白的值。如果我移除或(X),那么它一次只适用于一个条件。

我相信,这是一件微不足道的事情,任何帮助都值得赞赏。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-09-25 08:48:40

怎么了

代码的以下部分中的逻辑

代码语言:javascript
运行
AI代码解释
复制
if(propnumber != "" || propnumber != 'cancel'){
    // I assume some code will go here
} else{
    SpreadsheetApp.getActiveSpreadsheet().toast('You must enter a value')
    return
};

不符合您在这里描述的逻辑:

如果未输入值或通过“取消”,则会发生中断。

考虑一下propnumber'cancel'的情况

propnumber != ""计算为true

propnumber != 'cancel'计算为false

因此,代码中的if(... || ...)条件计算为true,运行(当前为空的) if块,而不是运行else

如何修复它

选项1:逻辑的直译

如果没有输入值或通过取消,则会发生中断。

将会是

代码语言:javascript
运行
AI代码解释
复制
if(propnumber == "" || propnumber == 'cancel') {
    SpreadsheetApp.getActiveSpreadsheet().toast('You must enter a value')
    return
} else {
    // Some action
} 

选项2:如果您希望交换ifelse子句,则必须否定整个条件。因此,这也是可行的:

代码语言:javascript
运行
AI代码解释
复制
if(!(propnumber == "" || propnumber == 'cancel')) {
    // Some action
} else {
    SpreadsheetApp.getActiveSpreadsheet().toast('You must enter a value')
    return
} 

注意添加的括号和单个否定。

选项3:在现有代码中使用和代替OR。

表达式!(A || B)在逻辑上并不等同于!A || !B。相反,它等同于!A && !B (参见德摩根定律)。因此,这也是可行的:

代码语言:javascript
运行
AI代码解释
复制
if(propnumber != "" && propnumber != 'cancel') {
    // Some action
} else {
    SpreadsheetApp.getActiveSpreadsheet().toast('You must enter a value')
    return
} 
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73845312

复制
相关文章
编码声明的问题(php或meta)
编码声明的方法:一种是利用php header来进行声明,另外一种是利用HTML <meta >标签进行声明 1.利用php header()函数声明,这个header()函数的作用是把括号里面的信息发到http标头。  header("Content-type: text/html; charset=xxx");  例如: php页面为utf编码 header("Content-type: text/html; charset=utf-8");  php页面为gbk编码 header("Conten
joshua317
2018/04/10
1.1K0
Vue webpack打包后,css样式发生改变或不起作用
用run dev build打包后,发现样式改变了,最终发现addAdress.vue和myAdress.vue中的有个类名是相同的,但是想着
honey缘木鱼
2018/12/26
5.1K0
[译] 方法是否应该在 T 或 *T 上声明
友情提示:此篇文章大约需要阅读 3分钟49秒,不足之处请多指教,感谢您的阅读。 订阅本站
Meng小羽
2021/06/29
4080
MySQL kill会话不起作用?
在一次日常测试中发现,kill 一个会话后,SQL语句依然在运行并没终止;被kill的会话重新连接并继续执行原来的SQL语句。
老叶茶馆
2023/09/01
2760
MySQL kill会话不起作用?
MySQL kill会话不起作用?
在一次日常测试中发现,kill 一个会话后,SQL语句依然在运行并没终止;被kill的会话重新连接并继续执行原来的SQL语句。
GreatSQL社区
2023/08/10
4120
MySQL kill会话不起作用?
声明
本站在互联网上的地址是:https://blog.zhuxu.xyz/,为个人性质的非盈利博客,博主的其他网站不适用于本政策。本站的服务器与内容分发网络均位于中国大陆。访客在本站留下的所有痕迹均按照此政策执行。本站认为隐私权是一项人类必要的基本权利,本站充分关心您的隐私问题,为响应现行网络隐私法律法规,现将本站的隐私政策公布如下:
迷路的朱朱
2023/05/04
4580
<!DOCTYPE> 声明
网络上有很多不同的文件,如果能够正确声明HTML的版本,浏览器就能正确显示网页内容。
用户8442333
2021/08/21
6900
RecyclerView.Adapter notifyDataSetChanged 不起作用
如果应用启动,不在聊天界面,接收到消息后就弹出通知栏消息通知用户,点击进入聊天界面。
张拭心 shixinzhang
2022/05/06
3K0
关于.gitignore不起作用「建议收藏」
由于公司和家里的as版本不同,倒腾了好久,但是代码到本地后build.gradle等文件做了修改,为了不影响公司版本,故家里的需要忽略这些文件的修改,想到的就是加gitignore配置,直接添加不起效果,找到如下办法:
全栈程序员站长
2022/11/01
2K0
Nginx配置缺失导致CSS不起作用
启动nginx,打开网页,发现样式并没有如期加载,看chrome的console,显示如下:
血狼debugeeker
2021/03/02
3.9K0
解决CSS属性position:fixed不起作用
若父元素设置了transform属性,无论transform设置任何属性值,都会导致position:fixed属性失效!
赵彤刚
2022/12/13
3.3K0
解决CSS属性position:fixed不起作用
函数声明[通俗易懂]
name 函数名 param 传递非函数的参数名,参数个数最多255个。 statements 构成函数体的语句。
全栈程序员站长
2022/09/20
7440
JS 声明
变量声明,无论发生在何处,都在执行任何代码之前进行处理。用 var 声明的变量的作用域是它当前的执行上下文,它可以是嵌套的函数,也可以是声明在任何函数外的变量。如果你重新声明一个 JavaScript 变量,它将不会丢失其值。
acc8226
2022/05/17
2.5K0
textarea 的 placeholder="" 不起作用
textarea 的 placeholder="请输入解决方案(极简化、不超过500字)" 不起作用
一个会写诗的程序员
2018/08/17
2.1K0
FeignClient 设置 fallback不起作用
StringCloud FeignClient 设置 fallback不起作用 今天在配置feign中是用hystrix的时候,FeignClient 中的 fallback不起任何作用,本来以为是 不支持这个属性了,打开源码一看,还提供这个fallback属性,后来翻阅各中资料,才发现是没有打开feign对hustrix的支持。下面是解决方案: 在application.yml中加入如下配置就可以了 feign: hystrix: enabled: true
码农笔录
2018/06/29
3.5K0
声明:腾讯区块链从未与任何机构就代币发行或交易进行合作
近日,部分机构和个人打着与腾讯区块链合作的旗号,从事代币发行或交易相关活动。 在此,我们对这类虚假传言作出以下澄清和说明: 腾讯区块链是完全自主研发的区块链底层技术,一直致力于构建区块链开放服务平台,用以解决商业企业间的信任问题。腾讯区块链从未以任何形式参与代币发行或交易相关活动,也未与任何机构展开此方面的合作。 事实上,早在2017年9月份,中国人民银行就曾规定任何组织和个人不得非法从事代币发行融资活动。包括中国人民银行在内的七部委联合发布的《关于防范代币发行融资风险的公告》明确指出,代币发行融资本质上是
腾讯TrustSQL
2018/03/08
8810
setOnItemClickListener不起作用解决方法
setOnItemClickListener不起作用解决方法 问题 原因 源码解析 解决方法 问题 使用ListView时通常会和Adapter一起使用,在使用setOnItemClickListener方法监听节点时不起作用 原因 原因是因为在你自己定义的Item中存在诸如ImageButton,Button,CheckBox等子控件,此时这些子控件会获取到焦点,所以常常当点击item时变化的是子控件,item本身的点击没有响应,此时就该用到descendantFocusability属性了,下面让我
是阿超
2022/05/05
2K0
setOnItemClickListener不起作用解决方法
Vue 中使用 JQuery 插件不起作用
有时候在 vue 的代码中使用 jQuery 会不起作用,这是因为 vue 还没有绑定变量,所以我们使用的 jQuery 根本就找不到目标变量,就不会执行,正确的做法是先设置一个时延,稍微等一等 vue 的加载。
wsuo
2020/10/26
2.3K0
hibernate3事务不起作用
如果没有如果,也许永远都发现不了这个问题,除非数据出现问题没有回滚。 由于一同事测试事务问题,发现数据不对,事务没有回滚。项目采用shiro+struts2+spring+hibernate,事务配置采用声明式事务。 用于在struts2的action层 aop注解权限,所用使用了cglib动态代理,如下: <aop:aspectj-autoproxy proxy-target-class="true"/> cglib的动态代理是基于任意类的,而JDK的动态代理是必须要实现接口的。而我们系统中service
小柒2012
2018/04/13
1.5K0
点击加载更多

相似问题

Excel如果或声明不起作用

22

目标-C“如果不等于或”声明不起作用

21

mysql如果那么声明不起作用?

12

google脚本如果声明不起作用

12

如果或声明与excel有关?

34
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文