小编Nul*_*0rm的帖子

while循环中的高级switch语句?

我刚刚开始使用C++但是对其他语言有一些先验知识(不幸的是,不久之后),但是有一个奇怪的困境.我不喜欢使用如此多的IF语句,并且想要使用开关/盒子,因为它看起来更干净,而且我想参与练习..但是......

让我们说我有以下场景(理论代码):

while(1) {

  //Loop can be conditional or 1, I use it alot, for example in my game
  char something;
  std::cout << "Enter something\n -->";
  std::cin  >> something;

  //Switch to read "something"
  switch(something) {
    case 'a':
      cout << "You entered A, which is correct";
      break;
    case 'b':
      cout << "...";
      break;
  }
}
Run Code Online (Sandbox Code Playgroud)

那是我的问题.假设我想退出WHILE循环,它需要两个break语句?

这显然是错误的:

case 'a':
  cout << "You entered A, which is correct";
  break;
  break;
Run Code Online (Sandbox Code Playgroud)

那么我只能在'a'上做IF语句来使用break ;? 我错过了一些非常简单的事吗?

这将解决我现在遇到的很多问题.

c++ logic break while-loop switch-statement

8
推荐指数
4
解决办法
1万
查看次数

C++:为什么空格总是在读取时终止字符串?

使用类型std::string来接受一个句子,用于练习(我没有在C++中使用过很多字符串)我正在检查一个字符是否是一个元音.我懂了:

for(i = 0; i <= analyse.length(); i++) {
if(analyse[i] == 'a' || analyse[i] == 'e' [..etc..]) {
 ...vowels++;    
} else { ...
 ...consonants++;
}
Run Code Online (Sandbox Code Playgroud)

如果字符串是一个单词,这可以正常工作,但第二个我添加一个空格(IE:aeio aatest)它只计算第一个块并将空间计为辅音,并退出读取句子(退出for循环或东西).

空格是否计为无字符== null?或者有点奇怪std::string?,知道为什么会发生这种情况会很有帮助!

编辑:我只是通过std :: cin接受字符串,例如:

std::string analyse = "";
std::cin >> analyse;
Run Code Online (Sandbox Code Playgroud)

c++ string std

6
推荐指数
1
解决办法
5281
查看次数

标签 统计

c++ ×2

break ×1

logic ×1

std ×1

string ×1

switch-statement ×1

while-loop ×1