c++ 将switch()与向量字符串中的字符一起使用时输出错误

91zkwejq  于 2023-03-14  发布在  其他
关注(0)|答案(1)|浏览(95)
#include <iostream>
#include <vector>

using namespace std;

int main() {
    vector<string> v = {"a", "a", "a"};
    for(int i = 0; i < 3; i++) {
        switch(v[i][0]) {
            case 'a':
                cout<<"case a"<<"\n";
            case 'b':
                cout<<"case b"<<"\n";
            case 'c':
                cout<<"case c"<<"\n";

        }

    }
}

输出:

C:\Users\Administrator\calc>g++ test.cpp && a.exe

case a
case b
case c
case a
case b
case c
case a
case b
case c

预期产出:

case a

为什么'a',也就是v[i][0],总是触发所有三种情况,我不明白,v[i][0]不是字符吗?

yjghlzjz

yjghlzjz1#

在每种情况下都需要使用“break”语句。

switch(v[i][0]) {
            case 'a':
                cout<<"case a"<<"\n";
                break;
            case 'b':
                cout<<"case b"<<"\n";
                break;
            case 'c':
                cout<<"case c"<<"\n";
                break;
        }

相关问题