javascript

java

python

c#

android

c++

node.js

php

html

jquery

ios

reactjs

css

.net

git

ruby-on-rails

sql

c

ruby

string

C#开关大小写字符串以

有什么方法可以在switch语句中创建条件条件,即您说字符串是否以某些内容开头吗?

Switch (mystring)
{
   case("abc")://String begins with abc (abcd or abc1 or abcz or abc.. or abc will fall in this condition).
      //Do Something
      break;
   default:
      break;
}

更新其他字符串的长度可以不同。

abc ..

abczyv

分解。

qwerty

trans by 2020-08-12T07:49:45Z

开关与字典中的Func值,这是更快,为什么?

假设有以下代码:

private static int DoSwitch(string arg)
{
    switch (arg)
    {
        case "a": return 0;
        case "b": return 1;
        case "c": return 2;
        case "d": return 3;
    }
    return -1;
}

private static Dictionary<string, Func<int>> dict = new Dictionary<string, Func<int>>
    {
        {"a", () => 0 },
        {"b", () => 1 },
        {"c", () => 2 },
        {"d", () => 3 },
    };

private static int DoDictionary(string arg)
{
    return dict[arg]();
}

通过迭代这两种方法并进行比较,即使将“ a”,“ b”,“ c”,“ d”扩展为包含更多键,字典也会变得更快一些。 为什么会这样呢?

这与圈复杂度有关吗? 是因为抖动仅将字典中的return语句编译为本地代码一次吗? 是因为字典的查找是O(1),对于switch语句可能不是这种情况? (这些只是猜测)

trans by 2020-08-10T18:15:57Z

为什么Java 12会尝试将切换结果转换为数字?

我同意以下代码:

var y = switch (0) {
    case 0 -> '0';
    case 1 -> 0.0F;
    case 2 -> 2L;
    case 3 -> true;
    default -> 4;
};
System.out.println(y);
System.out.println(((Object) y).getClass().getName());

返回此:

0
java.lang.Character

但是,如果您删除布尔值:

var y = switch (0) {
    case 0 -> '0';
    case 1 -> 0.0F;
    case 2 -> 2L;
    default -> 4;
};
System.out.println(y);
System.out.println(((Object) y).getClass().getName());

返回此:

48.0
java.lang.Float

我想这个结果是出乎意料的。

trans by 2020-08-10T07:58:24Z

C ++-使用switch语句进行范围检查

我的老师分配了一个程序来使用if-elseswitch这两个语句,因此我们了解如何实现这两个语句。 该程序要求我们提示用户分别以磅和米为单位输入他们的体重和身高。 这是我的尝试:

没有开关

#include "stdafx.h"
#include <iostream>

using namespace std;


int main()
{
    double height, weight, BMI, heightMeters, weightKilo;
    const double KILOGRAMS_PER_POUND = 0.45359237;
    const double METERS_PER_INCH = 0.0245;

    cout << "Please enter your height (inches) and weight (pounds)" << endl;
    cin >> height >> weight;

    weightKilo = weight*KILOGRAMS_PER_POUND;
    heightMeters = height*METERS_PER_INCH;
    BMI = weightKilo / (heightMeters*heightMeters);

    if (BMI < 18.5) {
        cout << "You are underweight " << endl;
    }
    else if (BMI >= 18.5 && BMI < 25.0) {
        cout << "You are normal" << endl;
    }
    else if (BMI >= 25.0 && BMI < 30.0) {
        cout << "You are overweight" << endl;
    }
    else if (BMI >= 30.0 && BMI < 35) {
        cout << "You are obese" << endl;
    }
    else {
        cout << "You are gravely overweight" << endl;
    }
}

带开关

#include "stdafx.h"
#include <iostream>

using namespace std;


int main()
{
    double height, weight, heightMeters, weightKilo;
    int BMI, q;
    const double KILOGRAMS_PER_POUND = 0.45359237;
    const double METERS_PER_INCH = 0.0245;

    cout << "Please enter your height (inches) and weight (pounds)" << endl;
    cin >> height >> weight;

    weightKilo = weight*KILOGRAMS_PER_POUND;
    heightMeters = height*METERS_PER_INCH;
    BMI = weightKilo / (heightMeters*heightMeters);

    if (BMI < 18.5) {
        q = 1;
    }
    else if (BMI >= 18.5 && BMI < 25.0) {
        q = 2;
    }
    else if (BMI >= 25.0 && BMI < 30.0) {
        q = 3;
    }
    else if (BMI >= 30.0 && BMI < 35) {
        q = 4;
    }
    else {
        q = 5;
    }

    switch (q) {
        case 1: cout << "You are underweight" << endl; break;
        case 2: cout << "You are a normal weight " << endl; break;
        case 3: cout << "You are overweight" << endl; break;
        case 4: cout << "You are obese" << endl; break;
        case 5: cout << "You are gravely overweight" << endl; break;
    }
}

这就是我想到的包括一个switch语句的方法。 有什么方法可以将第一个代码块实现为一个switch语句?

我几乎可以肯定,使用范围或使用双精度(18.5)都无法做到。 我给老师发了电子邮件,他们给了我以下答案:

这对您来说可能没有意义,但是有时您将不得不编写没有意义的程序。 我并不是说您没有合法的问题,但是如果有人可以解决,您可以。 但是,也许无法弄清楚。 这就是挑战”。

因此,我在问:是否有某种方法可以仅对第一个代码块使用switch语句,或者即使没有必要,我还是在代码中使用switch语句的最佳方法呢?

trans by 2020-08-07T12:42:34Z

如何在Scala中使用开关/大小写(简单模式匹配)?

我发现自己陷入了一件非常琐碎的事情:-]

我有一个枚举:

 object Eny extends Enumeration {
      type Eny = Value
      val FOO, BAR, WOOZLE, DOOZLE = Value
    }

在代码中,我必须将其有条件地转换为数字(变量数对应关系因上下文而异)。 我写:

val en = BAR
val num = en match {
  case FOO => 4
  case BAR => 5
  case WOOZLE => 6
  case DOOZLE => 7
}

这给我每个分支一个“无法访问的代码”编译器错误,但第一个错误是什么(在这种情况下为“ case FOO => 4”)。 我究竟做错了什么?

trans by 2020-07-31T07:49:07Z

PHP切换大小写在cas中的值大于1

我还有另一种情况。 我有一个变量来保存值(“每周”,“每月”,“季度”,“年度”),并且我还有另一个变量来保存值从1到10。

switch ($var2) {
       case 1:
          $var3 = 'Weekly';
          break;
       case 2:
          $var3 = 'Weekly';
          break;
       case 3:
          $var3 = 'Monthly';
          break;
       case 4:
          $var3 = 'Quarterly';
          break;
       case 5:
          $var3 = 'Quarterly';
          break;
       // etc.
}

它不是很漂亮,因为我的代码有很多重复项。 我想要的是:

switch ($var2) {
       case 1, 2:
          $var3 = 'Weekly';
          break;
       case 3:
          $var3 = 'Monthly';
          break;
       case 4, 5:
          $var3 = 'Quarterly';
          break;
}

如何在PHP中做到这一点? 先感谢您。 对不起我的英语不好。

trans by 2020-07-20T12:50:41Z

c-如果我在切换情况下不写默认值怎么办?

int a = 10;
switch(a){
case 0:
    printf("case 0");
    break;
case 1:
    printf("case 1");
    break;
}

以上代码有效吗?

如果我确定int a的值不会是1和0,那么可以避免default吗?

如果在任何情况下值都不同于1和0怎么办?

我知道这是一个愚蠢的问题,但我当时想这可能是非法的或未定义的行为,因此我只是想确认一下。

trans by 2020-07-12T22:07:07Z

在C#中评估switch语句中的表达式

我必须在case < 0语句中实现以下内容:

switch(num)
{
  case 4:
    // some code ;
    break;
  case 3:
    // some code ;
    break;
  case 0:
    // some code ;
    break;
  case < 0:
    // some code ;
    break;
}

switch语句是否可以评估case < 0? 如果没有,我该怎么办?

trans by 2020-07-09T20:00:02Z

开启枚举(带有Flags属性)而没有声明所有可能的组合吗?

如何打开设置了flags属性(或更确切地说是用于位操作)的枚举?

我希望能够在匹配声明值的开关中找到所有情况。

问题是,如果我有以下枚举

[Flags()]public enum CheckType
{
    Form = 1,   
    QueryString = 2,
    TempData = 4,
}

我想使用这样的开关

switch(theCheckType)
{
   case CheckType.Form:
       DoSomething(/*Some type of collection is passed */);
       break;

   case CheckType.QueryString:
       DoSomethingElse(/*Some other type of collection is passed */);
       break;

   case CheckType.TempData
       DoWhatever(/*Some different type of collection is passed */);
       break;
}

如果“ theCheckType”设置为两个CheckType.Form | CheckType.TempData我希望它能同时击中两种情况。 显然,由于中断,它不会在我的示例中同时命中,但除此之外,由于CheckType.Form不等于CheckType.Form |,它也会失败。 CheckType.TempData

正如我所看到的,唯一的解决方案是为枚举值的每种可能组合辩护?

就像是

    case CheckType.Form | CheckType.TempData:
        DoSomething(/*Some type of collection is passed */);
        DoWhatever(/*Some different type of collection is passed */);
        break;

    case CheckType.Form | CheckType.TempData | CheckType.QueryString:
        DoSomething(/*Some type of collection is passed */);
        DoSomethingElse(/*Some other type of collection is passed */);
        break;

... and so on...

但这确实不是很理想(因为它将很快变得很大)

现在我有3个如果条件恰好在彼此之后

就像是

if ((_CheckType & CheckType.Form) != 0)
{
    DoSomething(/*Some type of collection is passed */);
}

if ((_CheckType & CheckType.TempData) != 0)
{
    DoWhatever(/*Some type of collection is passed */);
}

....

但这也意味着,如果我有一个带有20个值的枚举,则每次必须经过20个If条件,而不是像使用开关时那样仅“跳转”到所需的“ case” /。

有解决这个问题的魔术方法吗?

我已经考虑过循环遍历声明的值然后使用开关的可能性,然后它将仅对每个声明的值命中该开关,但是我不知道它将如何工作以及如果它对性能有不利影响( 相比许多如果)?

有没有一种简单的方法可以遍历声明的所有枚举值?

我只能提出使用ToString()并按“,”进行分割,然后遍历数组并解析每个字符串。


更新:

我看到我的解释还不够好。我的示例很简单(试图简化我的方案)。

我将它用于Asp.net MVC中的ActionMethodSelectorAttribute,以确定在解析url / route时是否应该可用的方法。

我通过在方法上声明这样的东西来做到这一点

[ActionSelectorKeyCondition(CheckType.Form | CheckType.TempData, "SomeKey")]
public ActionResult Index()
{
    return View();
} 

这意味着它应该检查Form或TempData是否具有为可用方法指定的键。

它将要调用的方法(在我之前的示例中为doSomething(),doSomethingElse()和doWhatever())实际上将bool作为返回值,并将使用参数进行调用(不同的集合不共享可共享的接口) 使用-请在下面的链接等中查看我的示例代码)。

为了希望更好地了解我在做什么,我粘贴了一个我实际上在pastebin上正在做的简单示例-可以在这里找到[http://pastebin.com/m478cc2b8]

trans by 2020-07-06T05:24:15Z

PHP-开关语句中的正则表达式

PHP switch / case语句中是否允许使用正则表达式以及如何使用它们?

trans by 2020-06-26T21:48:15Z

一大堆十字架初始化

我从下载的示例中提取了以下代码片段:

bool ChatServer::event(QEvent * event)
{
    if(event->type() == QEvent::User)
    {
        UserEvent * ue = static_cast<UserEvent *>(event);
        switch(ue->userType)
        {
            case CR::ErrorEvent:
            case CR::LogEvent:
            {   
                TraceEvent * te = static_cast<TraceEvent *>(ue);
                if(te->userType == CR::ErrorEvent)
                {
                    error(te->msg);
                }
                else
                {
                    log(te->msg);
                }
            }
                break;
            default:
                return false;
        }
    }
    else
    {
        return QTcpServer::event(event);
    }
    return true;
}

现在,如果编译程序,则会出现以下错误:

g++ -c -pipe -O2 -Wall -W -DQT_NO_DEBUG -DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/local/share/qt4/mkspecs/freebsd-g++ -I. -I/usr/local/include/qt4/QtCore -I/usr/local/include/qt4/QtNetwork -I/usr/local/include/qt4 -I. -I/usr/local/include/qt4 -I/usr/local/include -o chatserver.o chatserver.cpp
g++ -c -pipe -O2 -Wall -W -DQT_NO_DEBUG -DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/local/share/qt4/mkspecs/freebsd-g++ -I. -I/usr/local/include/qt4/QtCore -I/usr/local/include/qt4/QtNetwork -I/usr/local/include/qt4 -I. -I/usr/local/include/qt4 -I/usr/local/include -o clientservice.o clientservice.cpp
clientservice.cpp: In member function 'virtual bool ClientService::event(QEvent*)':
clientservice.cpp:37: error: jump to case label
clientservice.cpp:34: error:   crosses initialization of 'MessageEvent* me'
clientservice.cpp:41: error: jump to case label
clientservice.cpp:38: error:   crosses initialization of 'UserInfoEvent* uie'
clientservice.cpp:34: error:   crosses initialization of 'MessageEvent* me'
clientservice.cpp:44: error: jump to case label
clientservice.cpp:38: error:   crosses initialization of 'UserInfoEvent* uie'
clientservice.cpp:34: error:   crosses initialization of 'MessageEvent* me'
clientservice.cpp:31: warning: enumeration value 'EventTypeBegin' not handled in switch
clientservice.cpp:31: warning: enumeration value 'LogEvent' not handled in switch
clientservice.cpp:31: warning: enumeration value 'ErrorEvent' not handled in switch
clientservice.cpp:31: warning: enumeration value 'ClientConnected' not handled in switch
clientservice.cpp:31: warning: enumeration value 'ClientReg' not handled in switch
clientservice.cpp:31: warning: enumeration value 'ClientDisconnect' not handled in switch
clientservice.cpp:31: warning: enumeration value 'ServerConnected' not handled in switch
clientservice.cpp:31: warning: enumeration value 'ServerDisconnect' not handled in switch
clientservice.cpp:31: warning: enumeration value 'DoConnect' not handled in switch
clientservice.cpp:31: warning: enumeration value 'DoDisconnect' not handled in switch
clientservice.cpp:31: warning: enumeration value 'GotMessage' not handled in switch
clientservice.cpp:31: warning: enumeration value 'GotUserInfo' not handled in switch
clientservice.cpp:31: warning: enumeration value 'SendUserInfo' not handled in switch
clientservice.cpp:31: warning: enumeration value 'GotClientInfo' not handled in switch
clientservice.cpp:31: warning: enumeration value 'SendClientInfo' not handled in switch
clientservice.cpp:31: warning: enumeration value 'EventTypeEnd' not handled in switch
clientservice.cpp: In member function 'void ClientService::readClient()':
clientservice.cpp:63: warning: comparison between signed and unsigned integer expressions
clientservice.cpp:87: error: jump to case label
clientservice.cpp:83: error:   crosses initialization of 'Message* msg'
clientservice.cpp:92: error: jump to case label
clientservice.cpp:88: error:   crosses initialization of 'UserInfo* ui'
clientservice.cpp:83: error:   crosses initialization of 'Message* msg'
clientservice.cpp:97: error: jump to case label
clientservice.cpp:93: error:   crosses initialization of 'ClientInfo* ci'
clientservice.cpp:88: error:   crosses initialization of 'UserInfo* ui'
clientservice.cpp:83: error:   crosses initialization of 'Message* msg'
clientservice.cpp: In member function 'bool ClientService::sendToClient(CR::MsgType::MsgType, SendAble*)':
clientservice.cpp:124: warning: comparison of unsigned expression < 0 is always false
clientservice.cpp: In member function 'void ClientService::gotUserInfo(UserInfo*)':
clientservice.cpp:176: error: cast from 'ClientService*' to 'quint32' loses precision
*** Error code 1

Stop in ~/SimpleChatRoomServer

现在,如果除去case陈述的括号,则会出现此错误:

g++ -c -pipe -O2 -Wall -W -DQT_NO_DEBUG -DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/local/share/qt4/mkspecs/freebsd-g++ -I. -I/usr/local/include/qt4/QtCore -I/usr/local/include/qt4/QtNetwork -I/usr/local/include/qt4 -I. -I/usr/local/include/qt4 -I/usr/local/include -o chatserver.o chatserver.cpp
chatserver.cpp: In member function 'virtual bool ChatServer::event(QEvent*)':
chatserver.cpp:108: error: jump to case label
chatserver.cpp:98: error:   crosses initialization of 'TraceEvent* te'
chatserver.cpp:94: warning: enumeration value 'EventTypeBegin' not handled in switch
chatserver.cpp:94: warning: enumeration value 'ClientConnected' not handled in switch
chatserver.cpp:94: warning: enumeration value 'ClientReg' not handled in switch
chatserver.cpp:94: warning: enumeration value 'ClientDisconnect' not handled in switch
chatserver.cpp:94: warning: enumeration value 'ServerConnected' not handled in switch
chatserver.cpp:94: warning: enumeration value 'ServerDisconnect' not handled in switch
chatserver.cpp:94: warning: enumeration value 'DoConnect' not handled in switch
chatserver.cpp:94: warning: enumeration value 'DoDisconnect' not handled in switch
chatserver.cpp:94: warning: enumeration value 'GotMessage' not handled in switch
chatserver.cpp:94: warning: enumeration value 'SendMessage' not handled in switch
chatserver.cpp:94: warning: enumeration value 'GotUserInfo' not handled in switch
chatserver.cpp:94: warning: enumeration value 'SendUserInfo' not handled in switch
chatserver.cpp:94: warning: enumeration value 'GotClientInfo' not handled in switch
chatserver.cpp:94: warning: enumeration value 'SendClientInfo' not handled in switch
chatserver.cpp:94: warning: enumeration value 'EventTypeEnd' not handled in switch
*** Error code 1

Stop in ~/SimpleChatRoomServer.

完整的源代码293879438701651616608:

#include <QTextStream>
#include <QDateTime>
#include "traceevent.h"
#include "chatserver.h"
#include "chatcenterthread.h"
#include "clientservicethread.h"
#include "message.h"
#include "server.h"

ChatServer::ChatServer(QObject * parent)
        :QTcpServer(parent)
{
    QFile * inFile = new QFile(this);
    QFile * outFile = new QFile(this);
    QFile * errFile = new QFile(this);
    inFile->open(stdin,QIODevice::ReadOnly);
    outFile->open(stdout,QIODevice::WriteOnly);
    errFile->open(stderr,QIODevice::WriteOnly);
    setIO(inFile,outFile,errFile);

    qobject_cast<Server *>(qApp)->csrId = this;
    csrId = (QObject *)(0+CR::ServerId);
}

ChatServer::~ChatServer()
{
    for(int i = 0; i < ccs.size(); i++)
    {
        ccs.at(i)->deleteLater();
    }
}

void ChatServer::setIO(QFile * inFile,QFile * outFile,QFile * errFile)
{
    in.setDevice(inFile);
    out.setDevice(outFile);
    err.setDevice(errFile);
}

void ChatServer::incomingConnection(int socketId)
{
    ClientServiceThread *cst = new ClientServiceThread(socketId,this);
    cst->start();
    connect(cst,SIGNAL(finished()),cst,SLOT(deleteLater()));
}

bool ChatServer::init(quint16 & port)
{
    if(!port)
    {
        bool ok = false;
        while(!ok)
        {
            out<<tr("Port[5555]: ");
            out.flush();
            QString p;
            p = in.read(1);
            if(p!=QString("\n"))
            {
                QString strport;
                strport = in.readLine(10);
                strport = p + strport;
                port = strport.toUInt(&ok);
            }
            else
            {
                port = 5555;
                ok = true;
            }
        }
    }

    //ADD ONE ChatCenter
    ChatCenterThread * cct = new ChatCenterThread(this);
    cct->start();
    connect(cct,SIGNAL(finished()),cct,SLOT(deleteLater()));

    if(!listen(QHostAddress::Any,port))
    {
        error(tr("Listen at [%1] fail!").arg(port));
        deleteLater();
        exit(1);
        return false;
    }
    log(tr("Listen at [%1]").arg(port));
    return true;
}

bool ChatServer::event(QEvent * event)
{
    if(event->type() == QEvent::User)
    {
        UserEvent * ue = static_cast<UserEvent *>(event);
        switch(ue->userType)
        {
            case CR::ErrorEvent:
            case CR::LogEvent:
                TraceEvent * te = static_cast<TraceEvent *>(ue);
                if(te->userType == CR::ErrorEvent)
                {
                    error(te->msg);
                }
                else
                {
                    log(te->msg);
                }
                break;
            default:
                return false;
        }
    }
    else
    {
        return QTcpServer::event(event);
    }
    return true;
}

void ChatServer::error(QString msg)
{
    err<<QDateTime::currentDateTime().toString(Qt::ISODate)
            <<" !ERROR! "<<msg<<endl;
}

void ChatServer::log(QString msg)
{
    out<<QDateTime::currentDateTime().toString(Qt::ISODate)
            <<" "<<msg<<endl;
}

1)我是否使用了不正确的括号?

2)为什么在case语句中使用括号将crosses initialization显示为其他代码行。

trans by 2020-06-25T16:45:22Z

php-切换多个案例陈述

有人可以建议我如何替换以下代码如何重写代码以避免重复块case 3:{code block A; break;}

switch(i){
  case 1:{code block A; break;}
  case 2:{code block b; break;}
  case 3:{code block A; break;}
  default: {code block default; break;}
}

如何为案例1和案例3合并代码

trans by 2020-06-24T09:43:21Z

NET开关语句是散列还是索引?

.Net 4(或任何以前的版本)是否对基于字符串的较长switch语句执行任何类型的优化?

由于某些较长的switch语句在这种情况下寻找匹配的字符串,因此我正在解决潜在的性能瓶颈,并且我一直认为这些搜索是在线性时间(或接近线性)中进行搜索的,即不使用索引来快速找到匹配的字符串 串)。 但这似乎是.Net可以优化的显而易见的领域,因此我想检查是否是这种情况。

这是我最近提出的一个问题:索引切换语句,或等效语句? .net,C#

trans by 2020-06-21T08:39:25Z

关于Java switch语句-在每个cas中使用return和省略中断

给定这种方法,这是否代表了一些过分的风格或语义上的假象:

private double translateSlider(int sliderVal) {
    switch (sliderVal) {
        case 0:
            return 1.0;
        case 1:
            return .9;
        case 2:
            return .8;
        case 3:
            return .7;
        case 4:
            return .6;
        default:
            return 1.0;
    }
}  

显然,这与此处的Java教程不符。

但是,它很清楚,简洁,到目前为止,完全满足了我的需求。 是否有一个令人信服的,务实的理由来创建局部变量,在每种情况下为其分配值,在每种情况下添加中断并在方法结束时返回该值?

trans by 2020-06-18T23:10:48Z

目标c-这是什么原因:无法从switch语句跳转到此案例实验室

这个问题已经在这里有了答案:

  • 在switch语句中定义块会导致编译器错误                                     1个答案

这是一个switch语句,我在以下方面遇到错误:

        switch (transaction.transactionState) {

        case SKPaymentTransactionStatePurchasing:

            // show wait view here
            statusLabel.text = @"Processing...";
            break;

        case SKPaymentTransactionStatePurchased:

            [[SKPaymentQueue defaultQueue] finishTransaction:transaction];

            // remove wait view and unlock iClooud Syncing
            statusLabel.text = @"Done!";

            NSError *error = nil;
            [SFHFKeychainUtils storeUsername:@"IAPNoob01" andPassword:@"whatever" forServiceName: kStoredData updateExisting:YES error:&error];

            // apply purchase action  - hide lock overlay and
            [oStockLock setBackgroundImage:nil forState:UIControlStateNormal];

            // do other thing to enable the features

            break;

        case SKPaymentTransactionStateRestored:

            [[SKPaymentQueue defaultQueue] finishTransaction:transaction];

            // remove wait view here
            statusLabel.text = @"";
            break;

        case SKPaymentTransactionStateFailed:

            if (transaction.error.code != SKErrorPaymentCancelled) {
                NSLog(@"Error payment cancelled");
            }
            [[SKPaymentQueue defaultQueue] finishTransaction:transaction];
            // remove wait view here
            statusLabel.text = @"Purchase Error!";
            break;

        default:
            break;
    }

最后两种情况,加上默认情况,给了我以下错误:

无法从switch语句跳转到此案例标签

我已经多次使用switch语句; 这是我第一次看到这个。 该代码已从一个教程(此处)复制而来,我正在尝试使其适应我的应用程序。 希望能对此提供帮助。 标清

trans by 2020-02-22T11:50:04Z

CodeGo.net>在开关中使用“转到”?

我已经看到了一个建议的编码标准,其内容为goto

我不懂 这种“例外”情况看起来像什么,证明goto是合理的?

trans by 2020-02-16T02:34:57Z

在C#中切换大小写-期望一个恒定值

我的代码如下:

public static void Output<T>(IEnumerable<T> dataSource) where T : class
{   
    dataSourceName = (typeof(T).Name);
    switch (dataSourceName)
    {
        case (string)typeof(CustomerDetails).Name.ToString(); :
            var t = 123;
            break;
        default:
            Console.WriteLine("Test");
    }
}

但这是行不通的。 该case语句给我一个错误,表明需要一个常量。 请大家帮忙谢谢!

trans by 2020-02-07T23:48:36Z

switch语句-不等式如何使用ruby“ case ... when”?

你能用红宝石做到这一点吗?似乎“错过”了不平等的案件

 case myvar
 when  myvar < -5
    do somethingA
 when -5..-3
    do special_something_XX
 when -2..-1
    do special_something_YY
 when myvar == 0
    do somethingB
 when myvar > 0
    go somethingC
 end
trans by 2020-02-02T05:35:34Z

调用函数时切换“控制权转移绕过初始化:”

当我尝试构建以下开关时,出现“控制权转移绕过初始化:”错误:

switch (retrycancel)
{
    case 4:    //The user pressed RETRY
        //Enumerate all visible windows and store handle and caption in "windows"
        std::vector<MainHandles::window_data> windows = MainHandles().enum_windows().get_results(); 
        break;

    case 2: 
        //code
}

这与我调用我的枚举函数有关。 如果不允许从交换机内部调用函数,是否有解决此问题的方法?

trans by 2020-01-25T04:50:34Z

目标c-在switch语句中使用NSString

是否可以在else if语句中使用if

还是只使用if/else if更好?

trans by 2020-01-11T23:58:48Z

1 2 3 4 5 6 下一页 共6页