考虑一下这个
#include <iostream>
int main(){
switch(int a = 1){ //#condition
case 1: switch(int a = 2){}
case 2: switch(int a = 2){}
}
}
为什么在本例中a的重声明格式良好?
根据下列规则:
init-语句、for -range-声明中声明的名称以及if、while、for和switch语句中声明的名称是if、while、for或switch语句(包括受控语句)的本地名称,而在该语句的后续条件下不应被重新声
我想这更多的是假设而不是实际,但我想知道是否可以在'assert‘中使用一个返回'true’或'false‘的switch语句。我意识到有更好的方法来做到这一点,但我想从错误处理的角度来看这个问题,而不是消毒用户输入。
例如,考虑一个date类,它接受设置日期的输入。在类的SetDate()成员函数中,我想放置一个'assert‘来处理由输入引起的错误,比如当月为"13“,或者当月为"2”(2月)时为30天。编写一条switch语句来实现这一点是很简单的:
switch(nMonth){
case 1:
case 3:(etc
我必须评估许多条件。在我的例子中,我必须这样做:
switch(id)
{
case 5:
// switch some other cases here
case 6:
// set some value
...
}
在case 5中使用另一个交换机是一种好的做法吗?如果不是,哪一个更好?那里有if语句吗?
全。我是JavaScript的新手--目前正在尝试理解switch语句。当我没有给我的result变量赋值时,我在理解如何仍然获得返回值时遇到了问题。switch语句嵌套在函数中。 function caseInSwitch(val) {
let result = "";
switch(val) {
case 1:
return "alpha";
break;
case 2:
return "beta";
break;
case 3:
return
我正试图在python中构建一个切换逻辑。
基于,我构建了以下代码:
def func(string):
print(string)
class Switch:
def __init__(self):
pass
def first_switch(self, case):
return {
'1': func('I am case 1'),
'2': func('I am case 2'),
希望这是一个简单的问题。我没有处理过太多枚举,所以我不完全理解它们是如何工作的。在我的程序中,我试图将玩家的工作存储在枚举中。我需要的功能,该工作可以改变。我尝试使用switch语句,但它不会改变玩家的工作。
代码:
// if change is True, change the job. If false, simply return the current value
int GameModeState::changeJob(bool change)
{
int job = Landman; // Default job is landman
if (change ==
我正在迭代一个大型数组(10^5个项目),并对每个项目执行一个操作。
for (var row in rows) {
switch (operator) {
case "op1":
row += 1;
break;
case "op2":
...
case "opN":
break;
}
}
为了可测试性和可读性,我想将内部switch语句提取到它自己的函数中,这样循环看起来就像
for (var row in rows) {
this.updateRow(row
我有一个相当长的switch-case语句。其中一些案例非常简短和琐碎。一些变量更长,需要一些从未在其他地方使用过的变量,如下所示:
switch (action) {
case kSimpleAction:
// Do something simple
break;
case kComplexAction: {
int specialVariable = 5;
// Do something complex with specialVariable
} break;
}
另一种方法是在进入switch
我知道C++03不允许在不使用大括号的情况下在switch块中定义变量。
const int i = ...
switch (i) { case 0: int j = 0; break; } // 1. error here
switch (i) { case 0: { int j = 0; } break; } // 2. ok
关于新的C++11标准是什么?它允许第一种形式吗?我也可以写这样的代码吗:
switch (i)
{
case 0: int j = 0; break;
case 1: int j = 0; break;
case 2: int j = 0; b
为了适应Swift (来自objc),我做了一些非常简单的事情--我想通过使用guard语句和switch语句在链接列表中返回所需的节点。我显然误用了guard语句,因为我的else子句很大(这是保存开关语句的地方)。也许我甚至不需要一个switch语句,但它只是清理了一些东西。
我的旧代码如下:
func getValue (atIndex index: Int) -> T {
if count < index || index < 0 {
print ("index is outside of possible range")
这是我写的第一个代码,因为我刚刚开始,所以我不确定是否有任何东西是正确缩进的。但我想要一种能够重复文本的方法,但我不确定如何做到这一点。
print("Hey there. I want to play a game.")
print("Tell me your name")
print("Type your name")
name = io.read()
print("Oh, what a nice name. I was gonna call my kid the same")
pri
在switch块中,如何跳出foreach循环?
通常,您使用break,但是如果您在switch块中使用break,它将使您离开switch块,并且foreach循环将继续执行:
foreach (var v in myCollection)
{
switch (v.id)
{
case 1:
if (true)
{
break;
}
break;
case 2;
break
}
}
当
我有一个关于这个脚本的问题,我似乎不能理解。但每次我运行我的getfirewall函数时,如果我在开始时按Q退出,它仍然会经历下一个关于我想要启用还是禁用它的问题。如果我在那里再做一次Q,它就会带我到主菜单。然后在主菜单中,如果我再次按Q退出,它会重复,使我再次输入Q退出。
function GetFirewall
{
$choice18 = read-host "Please enter the computer you wish you get the firewall profiles from"
do{ try{$s1 = New-PSSessi
在ES6中,我可以根据情况实现块作用域:
switch(somVar){
case 'first':
{
let itemId='foo';
}
break;
case 'second':
{
let itemId='bar';
}
}
显然,itemId也可以声明在最上面。
对于我的用例,局部作用域变量更有意义,因为在我的整个代码中,它更容易识别正在发生的事情,并且有许多case,而一些块包含有问题的变量,而另一些块没有。
我
在使用代码时,我遇到了一个有趣的特性。我使用的是打开了Cygwin和C++14 (-std=c++14)的Eclipse CDT 4.5.2。CASE中的变量初始化通常是被禁止的,但是下面的代码会编译:
switch( int switchStatement = 11)
{
default:
++j;
break; // break is optional, still compiles even if omitted
case 11:
int caseVariable = 0;
++j;
}
如果添加了另一个案例
我已经编写了一个菜单驱动的bash脚本,它在while循环中使用一个switch case来执行各种菜单选项。一切都运行得很好。现在我试图通过对用户输入执行错误测试来改进程序,但我似乎无法使其工作……
问题是我不知道如何正确地中断switch语句,而不中断while循环(这样用户就可以再试一次)。
# repeat command line indefinitely until user quits
while [ "$done" != "true" ]
do
# display menu options to user
echo "Comm
希望通过这个标题,很明显我没有问Swift是否支持Switch语句。我特别问的是Swift是否支持开关表达式,类似于C#的功能。
差别是微妙的,但很重要。开关语句是根据特定情况对代码行进行分组的一种方法。然而,开关表达式根据特定的情况返回值。
假设你有下面的枚举..。
enum SomeEnum {
case a
case b
case c
}
现在假设您需要根据特定的switch语句计算/返回一些值。目前,在Swift中,您必须使用开关语句来执行此操作.
let someEnumValue: SomeEnum = .a
let result: String
swi
我正在学习typescript,我在一个教程中偶然发现了这条switch语句。我知道这个数字是赋给的,所以所有的参数都应该是数字。但是,void是什么意思呢? function switchFunction(a: number): void {
switch (a) {
case 1:
let variableInCase1 = "test";
console.log(variableInCase1);
break;
case 2:
let
当使用Switch语句时,使用的是return而不是break,还是这两种形式的组合?
while (true)
{
var operation = Randomness.Next(0, 3);
switch (operation)
{
case 0:
return result + number;
case 1:
if ((result - number) > 0)
{
return result - number;
是否允许我有一个switch语句来决定返回什么?例如,我想根据我的随机生成器的结果返回不同的内容。Eclipse给了我一个错误,要求我将return语句放在switch之外。
我的代码:
public String wordBank() { //Error here saying: "This method must return a type of string"
String[] wordsShapes = new String[10];
wordsShapes[1] = "square";
wordsShapes[2] = "
我得到了一个switch语句来转换为一个查找对象,我尝试了所有的方法,但它仍然不起作用。我希望你们中的一些人看一下这些代码片段,并告诉我我做错了什么。
switch语句:
function phoneticLookup(val) {
var result = "";
switch(val) {
case "alpha":
result: "Adams";
break;
case "bravo":
result: "Boston";
break;