2016-07-27 4 views
-2

변수를 변경하지 :스위치 문은 내가 다음과 같이 간다 스위치 문이

   switch (event.key.keysym.sym) { 
      case SDLK_ESCAPE: 
       running = false; 
       break; 
      case SDLK_w: 
       y -= 10; 
       std::cout << "pressed" << std::endl; 
       std::cout << y << std::endl; 
      case SDLK_s: 
       y += 10; 
      } 

내가 w이 프로그램 눌러 실행하고 표시를 누르면 콘솔에보고 그래서 Y의 값이 때 그러나 나는 변수 y를 누르는 것이 바뀌지 않을 것입니다.

그러나 제대로 작동합니다.

당신은 새로운 사건 을 시작하기 전에 휴식을 놓친
+4

당신이'break'를 그리워 아래의 골격을 고려해' – Garf365

+0

y 축 = 10 y는 + = 10이 실행지고 따라서 y는 변경되지 않습니다. – sameerkn

+3

디버거를 사용하여 코드를 단계별로 실행하는 방법을 배워야 할 수도 있습니다. 좋은 디버거를 사용하면 한 줄씩 프로그램을 실행하고 예상 한 곳에서 벗어난 곳을 볼 수 있습니다. 프로그래밍을 할 때 필수적인 도구입니다. 추가 읽기 : ** [작은 프로그램을 디버깅하는 방법] (http://ericlippert.com/2014/03/05/how-to-debug-small-programs/) ** – NathanOliver

답변

1

그냥`의 경우 SDLK_s 전에

switch (event.key.keysym.sym) { 
    case SDLK_ESCAPE: 
    running = false; 
    break; 
    case SDLK_w: 
    y -= 10; 
    std::cout << "pressed" << std::endl; 
    std::cout << y << std::endl; 
    break; 
    case SDLK_s: 
    y += 10; 
    break; 
    } 
+2

이와 같은 간단한 오타는 닫히고 응답되지 않아야합니다. – NathanOliver

관련 문제