问题标签 [nested-if]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
2403 浏览

cobol - 嵌套条件语句中的点规则 - COBOL

我想知道是否有人可以向我解释 COBOL 中嵌套 IF 语句中的点规则。例子:

“WS-INF-REC”后面的点属于哪个if语句?第一个 IF 还是第二个 IF-ELSE?我知道在大多数编程中,它应该是最后一个 if 语句,但只是为了确保它与 COBOL 相同吗?

0 投票
1 回答
1480 浏览

excel - Excel 2010:嵌套 IF 语句

我一直在为我正在处理的文档创建一个嵌套的 IF,但是我已经设法制作了两个不同的 IF 语句,它们都可以工作,但它们需要合并。

与其相关的信息是:

我目前拥有的两个 IF 是:

此 If 语句首先查看 End 列是否已填充,如果已填充,则项目已完成并且可以显示在 L 列中。然后它在 ciolumn J 中获取开始(日期)并添加 10 个工作日,然后比较它到今天的日期,看看项目是否逾期或按时。

此 IF 语句查看 Cloud 列 (N) 中是否存在 Yes(如果有),然后将开始日期添加 20 个工作日,然后将其与今天的日期进行比较,以查看项目是否逾期或按时。

所以我正在寻找的是这两者的结合,但我总是得到一个错误或一个对许多论点说的消息。

它需要做的是:1)查看它们是否是和结束日期,如果有设置列 L 来完成 2)查看云列中是否有一个是,如果是这样,将开始日期添加 20 个工作日比较今天的日期并将 L 列设置为逾期或准时 3) 如果云列为空,则在开始日期添加 10 个工作日,然后与今天的日期进行比较,并将 L 列设置为逾期或准时。

任何帮助都是极好的!!!

0 投票
4 回答
1480 浏览

c++ - switch 语句而不是多个嵌套的 if - else?

我遇到过这样一种情况,我有一堆需要按顺序初始化的“系统”,只有在所有进行中的系统都成功初始化后,下一个系统才会被初始化。

这导致我使用大量嵌套的 if - else 语句。这是一些用于可视化的伪代码。

我发现当你达到几个级别时,这开始看起来像一团糟。

现在我想改用 switch 语句,从第一种情况开始,在成功时一直到其他情况,只有在出现错误时才会中断。

现在,我更喜欢这个了。我发现它更容易阅读,尤其是一些不错的评论,但我对编程还很陌生。

所以,我的问题是:看看这不是传统上使用 switch 语句的方式(至少从我所见),这样的事情是否可以接受,或者这会被认为是不好的形式?

作为编程新手,我尽量不养成太多坏习惯,这些习惯可能会让其他程序员感到沮丧并使事情变得更加困难。

我进行了搜索,但我发现的大部分内容都与替换 if - else if 语句的链有关,而不是替换嵌套的语句。

0 投票
1 回答
1863 浏览

c - C - 员工薪酬的 Switch 语句与 If 语句?

我正在使用 C 语言开发员工薪酬程序,我正在尝试找到一种更好的方法来组织代码来计算小时工的薪酬。我想使用 switch 语句,而不是一大堆 if 语句。我只是想知道这是否可能?案例需要一个值还是可以保持空白?例如,我可以只使用“ case :”而不是“ case value1 :”吗?我知道如果我确实使用了 switch 语句,我可能不得不使用 if's 来验证用户输入的内容是否有效。还是我应该坚持一堆如果?

如果您想知道,以下是我需要遵循的指示:

  1. 一家公司向其雇员支付: a) 经理,他们获得固定的周薪;b) 小时工,他们在工作的前 40 小时和“半小时”内获得固定的小时工资,即加班时间的小时工资的 1.5 倍;c) 佣金工人,他们收到 250 美元外加每周销售额的 5.7%;或 d) 计件工人,他们为每件生产的每件商品获得固定金额。

编写一个程序来计算每个员工的每周工资。您事先不知道员工人数。每种员工类型都有自己的工资代码:

1 经理
2小时工
3 佣金工人
4 计件工。

编写一个单独的函数来处理每种支付代码类型。使用开关根据员工的工资代码计算每个员工的工资。在开关中,提示用户输入程序需要的适当事实,以根据该员工的工资代码计算每个员工的工资。
酌情添加合理性检查(例如,工资在 0 - 100000 之间,工作小时在 0 - 84 之间,小时工资在 0 - 250 之间,每周销售额在 0 - 1000000 之间,件数在 1 - 1000 之间,每件工资在 0.01 - 1000 之间. 使用常量)。

以下是程序常量:#include

这是我到目前为止的每小时工作人员功能的代码:

我问的原因是因为我想为此添加验证,如果用户输入的数字不在 0 到 84 之间,它会说“输入无效,请输入 0 到 84 之间的数字”。我还想添加验证,如果用户输入的每小时费率不在 0 到 250 之间,它会说“输入无效,请输入 0 到 250 之间的数字”。我希望我没有混淆任何人。我可能犯了一些错误,我应该指出我对 C 编程非常陌生。

已编辑

我将 if 语句编辑如下:

这是正确的,它会起作用吗?

0 投票
1 回答
845 浏览

vba - 如何在 VBA 中编写 MAX IF 公式以实现对两个值的查找

我一直在使用数组公式查找位于 Y 列中的资源名称条目,在 B 列中查找项目名称,并使用 MAX 函数在 AE 列中返回最新/最高日期值。

现在直截了当地说,由于电子表格中数据的庞大(60,000 行),我的电子表格被杀死了。公式为:

如果我们查看下表,公式将为21/04/2014Richard 和21/06/2014Fred 返回,他们都在从事该项目Capitol

我想知道是否有办法在 VBA 中重写此公式以获得相同的结果,但使用更高效的内存运行它?我是 VBA 的初学者,但学习缓慢。

0 投票
1 回答
133 浏览

excel - Excel 错误处理 - 查找和返回员工 ID

请求:
请协助 w\ 公式逻辑跨两个可能的列(表数组内)提供错误处理和 Vlookup 功能,并返回员工 ID(数组中的第三列)。

目标:
创建一个自动填充出勤跟踪器,查找输入的电话号码并在嵌入式“名册”工作表上返回其员工 ID。此外,我正在尝试提供跨两个电话号码查找的功能。

“考勤跟踪器”工作表表格布局:(斜体强调)
日期 | 时间 | 来电显示| 类型 | 原因 | 详情 | 员工 # | ETC...

  • 来电显示 = D 列
  • 员工编号 = 第 I 列

VLOOKUP 的“名册”工作表表格数组

  • H栏=“联系主要”
  • 第 I 列 = “联系中学”
  • J栏=“员工编号”

主要配方

  • " First "=VLOOKUP(D2,Roster!H:J,3,0) <--- 根据 "Contact Primary" 查找 emp 编号
  • " Second "=VLOOKUP(D2,Roster!H:J,2,0) <--- 根据 "Contact Secondary" 查找 emp 编号

我的尝试
=IF(D2="","",IF(ISERROR(IF(ISERROR(VLOOKUP(First)),VLOOKUP(Second),VLOOKUP(First))),"Add # to Roster",VLOOKUP(FIRST) )))

我的结果
“来电显示”留空 - 完美!顶级 if 语句修复空白。
“来电显示”存在于“主要联系人”列中 - 完美!价值回报。
“来电显示”存在于“联系人辅助”列中 - 哦不!“将 # 添加到名册”返回。
“来电显示”在“主要联系人/次要联系人”中都不存在 - 哦不!“将 # 添加到名册”返回。

我希望我解释得足够好。如果您能提供帮助,请提前非常感谢您!

0 投票
3 回答
716 浏览

c# - 简化嵌套 if else 条件

我有这个嵌套的 if else 条件。我想要的检查流程在下面的代码中描述。

如何减少检查次数,保持检查流程不变。

0 投票
1 回答
759 浏览

c - C Infinite loop (IF nested in FOR LOOP)

I'm trying to create a function that asks the user for a value, which then will be stored as the max or min value entered, or if the user inputs a number < 0, it will exit the dataentry() function, else it will keep asking the user for input.

After the program prompts you the first time to enter data, before it reaches the for loop, it works and you enter your value. Then however it goes into an infinite loop printing "Enter data value: " over and over. I used the printf statement that prints out the max, min, data, and count values so I could check that they are being stored and they are, but when the function gets to the for loop it no longer does what I'm trying to do. Thank you in advance, this function is part of a larger program I'm writing but I cut all the irrelevant stuff out.

0 投票
1 回答
1170 浏览

if-statement - IF 语句帮助,三重嵌套

如果单元格C47的值等于或低于 0,我希望返回 0 值,但我不断返回单元格 E9 的负值。公式中的所有其他计算都很好。我无法弄清楚我做错了什么。我是嵌套 IF 语句的新手。

非常感谢所有帮助。谢谢你。

0 投票
3 回答
2928 浏览

java - Java,BufferedReader,限制用户输入,是/否

我的问题是如何将用户输入限制为 Y/N 或 y/n(在 Java 中)。目前我正在使用equals()并计划将它们更改为equalsignorecase(),这应该处理案例部分。但是,这不会阻止用户输入其他字符(例如:H 或 h)。目前,当输入 y 或 n 以外的字符时,程序直接进入“感谢播放消息”并结束游戏。

我对编程比较陌生,所以请提供带有建议的示例,最好是完整的示例。这对我来说真的有很长的路要走。另外,如果您觉得这部分代码可以以更好的方式编写,我愿意重写,但请再次提供一个完整的示例。

我意识到这个问题对于stackoverflow来说有点宽泛,但我真的可以利用更有经验的程序的洞察力。感谢您的时间。