问题标签 [fall-through]
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.
c - 叮当声未检测到开关故障
我想铿锵有力地捕捉到我无意中的“切换”语句失败。这个 shell 脚本演示了我的失败;我在脚本本身之后显示输出。我究竟做错了什么?
输出:
java - Java中的switch语句失败?
我可以使用
goto或fall-through
在 Java 中的Switch 语句中,就像在 C# 中一样?
这是我在 C# 中修改的代码示例,以便在条件 Switch 中使用goto语句,注意它说 SAM 的位置:
c - 编程新手 - C - 菜单系统中的直通问题
我最近开始学习 C 只是为了好玩,我决定尝试创建一个菜单系统,但我对我认为失败的问题有疑问:
问题是,一旦我到达第三个菜单,程序将打印出所选数字的字符串,但它不会自行终止,而是显示第三个菜单或返回第二个菜单,无论如何它都会这样做我输入了什么数字。
我只学习了大约两个星期的 C 语言,我对嵌套语句的工作原理不太了解if
,如果我能解释一下导致这种意外行为的原因以及如何纠正它,将不胜感激, 谢谢你。
我在 Windows 10 上通过 TDM-GCC-64 使用 GCC 5.1.0。
linux - 在旧版本的 gcc 上使用 `-Wno-implicit-fallthrough`
我有一个在 gcc 4.8.4 下构建良好的项目。我尝试使用 gcc 7 构建,并注意到很多-Wimplicit-fallthrough=
警告。据我所知,这确实是在 gcc 版本 7 中添加的。我现在-Wno-implicit-fallthrough
在构建时使用它来抑制这些警告。回到旧版本的 gcc,保留-Wno-implicit-fallthrough
编译器标志不会导致任何错误,即使我不相信 gcc 4 识别此选项。怎么来的?具体是-Wno-
允许不被识别的选项吗?
r - R:如何使 switch 语句失败
在许多语言中,有一条名为的指令break
告诉解释器在当前语句之后退出 switch。如果省略它,则在处理当前案例后切换:
如果您想通过一系列传递条件,这样的设计模式会很有用。
我知道如果程序员忘记插入 break 语句,这可能会由于无意的失败而导致错误,但是默认情况下有几种语言会中断,并包含一个失败关键字(例如continue
在 Perl 中)。
根据设计,R 开关也会在每个案例结束时默认中断:
在上述代码中,如果current_step
设置为 1,则输出仅为"Processing the first step..."
.
R中是否有任何方法可以强制开关盒通过以下情况?
c++ - GCC 编译器是否应该对这个涉及 [[fallthrough]] 属性的格式错误的 C++ 代码进行诊断?
我在 GCC 编译器版本 7.1.0 上测试 C++17 功能。这与fallthrough
属性有关,以下示例(现场示例)改编自此处的在线 CPP 参考
最后一个[[fallthrough]]
(for case 4:
) 格式不正确。
关于“根据标准处理格式错误的程序需要什么 C++ 编译器?”的问题 这里有最重要的答案,说明:
所以总结一下:如果一个格式错误的程序包含一个可诊断的违规行为,标准没有明确指定“不需要诊断”,那么符合要求的实现应该发出一个 diagnostic。
因此,我查看了标准 (N4713) 以查看它是否声明此问题不需要诊断。我找不到任何这样的声明。
有趣的是,在这一切之后,当我在最后一个之后添加以下语句时[[fallthrough]]
编译器警告(现场示例):
警告:属性“fallthrough”不在案例标签或默认标签之前
所以,这里有两个问题:
- 编译器是否错过了发出诊断,或者我在这里遗漏了什么?
- 如果是编译器问题,是否严重到需要报告?
swift - 如何使用 where 关键字快速检查 switch 语句中的所有情况?
当我执行这段代码时,只是print("it is greater than zero")
被执行了,但我有两种情况是正确的,我尝试使用fallthrough
关键字,但即使它是错误的,它也会执行下一个 case 块,无论如何,
这反过来又提出了另一个问题,我什么时候应该使用fallthrough
关键字?如果我想强制执行下一个块,为什么不将代码插入到同一个块中fallthrough
?
下面的示例有什么方法可以打印所有评估为 true 的案例并仍然排除所有评估为 false 的案例?
预先感谢您的回答!
typescript - 打字稿可能的代码路径与打字漏洞?
给定代码
打字稿编译器说:
没错,因为由于结构类型的原因,我可以what
称之为
从那时起v
在结构上与Y
. 现在我变成what
了
并且仍然得到编译错误。
我想知道编译器是否无法导出将采用其中一个分支,或者是否存在仍然允许我传入与两个分支if
中的任何一个都不匹配的兼容对象的漏洞。if
python - 适当的条件循环
我应该如何指定我的 if-else-elif 语句以不让它们在第一个 if 子句之后完成检查条件?
rust - 在 Rust 中具有贯穿的 C 样式 switch 语句
在match
Rust 中只执行一只手臂。我从 Murmurhash 3 中找到了这段代码片段:
这switch
是传统的 C switch
。是否有可能以优雅的方式在 Rust 中编写它?我找不到用match
.