草庐IT

Switch-case

全部标签

java - Java switch-case 语句中不区分大小写的匹配

我想知道是否有一种方法可以在javaswitchcase语句中执行不区分大小写的匹配。默认实现区分大小写。请参阅下面的示例。publicclassSwitchCaseTest{/***@paramargs*/publicstaticvoidmain(String[]args){switch("UPPER"){case"upper":System.out.println("true");break;default:System.out.println("false");break;}}}所以上面的语句返回false作为输出。我正在尝试使其适用于case-insensitive匹配,就像S

java - if-else 和 switch 语句的替代方案

我在Java中有以下代码:publicvoiddoSomething(inti){if(i==12){//ordershouldbesameup();left();stop();}if(i==304){//ordershouldbesameright();up();stop();}if(i==962){//ordershouldbesamedown();left();up();stop();}}//similarcodecanbedoneusingswitchcasestatements.//allthefunctioncanhaveanyfunctionalityandmightno

java - 是否可以在 java switch/case 语句中使用类名?

这个问题在这里已经有了答案:Switchovertypeinjava(9个回答)关闭6年前。我想使用javaswitch语句,它使用class名称作为case常量。有可能吗?还是我必须复制类名?由于编译器错误,以下代码无法运行:caseexpressionsmustbeconstantexpressionsStringtableName="MyClass1";...switch(tableName){caseMyClass1.class.getSimpleName():return1;caseMyClass2.class.getSimpleName():return2;default:

java - 在 switch/case 中使用枚举

我有一个具有枚举属性的实体://MyFile.javapublicclassMyFile{privateDownloadStatusdownloadStatus;//otherproperties,settersandgetters}//DownloadStatus.javapublicenumDownloadStatus{NOT_DOWNLOADED(1),DOWNLOAD_IN_PROGRESS(2),DOWNLOADED(3);privateintvalue;privateDownloadStatus(intvalue){this.value=value;}publicintge

java - 为什么 Java 7 中 String 的 switch 语句比 if else 快?

在Java7中,string对象可以在switch语句的表达式中。有人可以从officialdocumentation解释以下声明吗??TheJavacompilergeneratesgenerallymoreefficientbytecodefromswitchstatementsthatuseStringobjectsthanfromchainedif-then-elsestatements. 最佳答案 Java代码有一个类的两个版本,例如使用if-then-else:publicclassIfThenElseClass{pub

c# - switch 语句可以有多个变量吗?

问题基于所有使用switchblock的语言(C++、C#PHP、Java、Python等)。那么有没有可能有这样的东西呢?switch(var1,var2)casevar1=a:somethingbreak;casevar2=b:somethingbreak;casevar1=0,var2=1etc... 最佳答案 Python没有switch语句。推荐的替代方法是使用链式if/else链-无论如何,这是您应该在您的情况下使用的。另一个常见的习惯用法是使用map。在您的情况下,您可以使用(var1,var2)的元组来匹配结果。sw

Python C API : Switch on PyObject type

我有一些代码可以将Python连接到C++,它工作正常,但每次我看它时我都认为一定有更好的方法来实现它。在C++方面,有一个“变体”类型可以处理固定范围的基本类型-int、real、string、vectorofvariants等。我有一些代码使用PythonAPI从等效的Python类型进行转换。它看起来像这样:variantmakeVariant(PyObject*value){if(PyString_Check(value)){returnPyString_AsString(value);}elseif(value==Py_None){returnvariant();}elsei

python - 为什么 unittest.Test Cases 看不到我的 pytest fixtures?

我正在尝试使用py.test的fixtures在我的单元测试中,结合unittest。我在项目顶层的conftest.py文件中放置了几个固定装置(如here所述),用@pytest.fixture装饰它们,并且将它们的名称作为参数传递给需要它们的测试函数。灯具正确注册,如py.test--fixturestest_stuff.py所示,但是当我运行py.test时,我得到NameError:未定义全局名称“my_fixture”。这似乎只发生在我使用unittest.TestCase的子类时——但是py.test文档似乎说它与unittest配合得很好.当我使用unittest.Te

python - PEP 3103 : Difference between switch case and if statement code blocks

在PEP3103,Guido正在与各种思想流派、方法和对象讨论向Python添加switch/case语句。因为他使thisstatement:Anotherobjectionisthatthefirst-useruleallowsobfuscatedcodelikethis:deffoo(x,y):switchx:casey:print42Totheuntrainedeye(notfamiliarwithPython)thiscodewouldbeequivalenttothis:deffoo(x,y):ifx==y:print42butthat'snotwhatitdoes(unl

Python:无论 CaSE 是什么,检查值是否在列表中

我想检查一个值是否在列表中,无论字母大小写如何,我需要高效地完成它。这是我的:ifvalinlist:但我希望它忽略大小写 最佳答案 check="asdf"checkLower=check.lower()printany(checkLower==val.lower()forvalin["qwert","AsDf"])#printstrue使用any()功能。这种方法很好,因为您不会重新创建包含小写字母的列表,它会迭代列表,因此一旦找到真值,它就会停止迭代并返回。演示:http://codepad.org/dH5DSGLP