为了账号安全,请及时绑定邮箱和手机立即绑定

循环语句问题

#include<iostream>

#include<stdlib.h>

using namespace std;


int main(void){

int i = 0;

int k = 0;

int s = 0;

int n;

if (s < 10){

cin >> n;

switch (n)

{

case 8:

i++;

cout << "accelerate" << "\n"; break;

case 5:

i--;

cout << "brake" << "\n"; break;

case 4:

k -= 1;

cout << "turn left" << "\n"; break;

case 6:

k += 1;

cout << "turn right" << "\n"; break;

}

n = 0;

s = s + i;

if (k == 0 && s == 3){

cout << "Turn left please" << "\n";

cin >> n;

if (n == 4) k++;

else{

cout << "crash" << "\n";

goto last;

}

}

if (k == 1 && s == 7){

cout << "Turn right please" << "\n";

cin >> n;

if (n == 6) k--;

else{

cout << "crash" << "\n";

goto last;

}

}

}

if (s == 10){

cout << "Your win" << "\n";

s++;

}

last: cout << "game over" << "\n";

std::system("pause");

return 0;

}

请问各位大神 为什么我输出8后直接 accelerate + game over 了


正在回答

2 回答

if是单次判断,应该使用while循环判断

0 回复 有任何疑惑可以回复我~

switch语句执行时输入8时,i=1,输出accelerate然后跳出switch,s=1不会执行后面的if语句,所以就直接输出了 game over 

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
C++远征之离港篇
  • 参与学习       122700    人
  • 解答问题       474    个

C++扫清通往面向对象的最后一道障碍,将所有知识点融会贯通

进入课程

循环语句问题

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信