2017-11-16 41 views
1

나는 뭔가를 이해하려고 애 쓰고 있습니다. 저는 여전히 C++의 초보자입니다. 값을 입력하고 그것이 짝수 또는 홀수인지를 알려주는이 작은 프로그램을 만들었습니다. 이렇게하기 위해 "result"라는 정수를 만들어 값을 취하고 % 2 연산을 수행했습니다.내 정수를 어디에서 초기화 할까?

그러나 첫 번째 실수는 "cin >> value"위에 int 결과를 넣는 것이 었습니다. 어떤 이유로 프로그램을 엉망으로 만들었고 그 숫자는 언제나 상관이 없었습니다. 그런 다음 int 결과를 "cin >> value"아래에 넣으면 프로그램이 제대로 작동합니다. 왜이 일을하는거야?

도움을 주시면 감사하겠습니다. 이게 중복되면 사과하지만 무엇을 검색해야할지 모르겠다.

#include <iostream> 
#include <string> 
#include "Human.h" 
#include <ctime> 
using namespace std; 



int main() { 


    int value = 0; // where I input 
    cin >> value; 
    // if you put int result above cin program changes. 
    int result = value % 2; 

    if (result == 0) { 
     cout << "Even number." << endl; 
    } 
    else { 
     cout << "Odd number." << endl; 
    } 



    return 0; 
} 
+2

C++에서는 함수가 한 줄씩 실행됩니다. 'int result = value % 2;'가'cin >> value'보다 높으면 사용자가 값을 입력하기 전에'result'를 계산합니다. 그래서 그것은'int result = 0 % 2;'입니다. 'cin >> value' 후에 수행하면'cin >> value'가 먼저 발생하므로'value'는 입력 된 값으로 설정되고'result'는 그 값으로 계산됩니다 – Justin

답변

1

사용하는 프로그래밍 언어에 관계없이 임의의 코드가 위에서 아래로 실행됩니다. 먼저 변수를 선언하고 값을주고 짝수 또는 홀수인지 확인해야합니다. 당신이 result의 값을 계산하는 0입니다 value의 원래 초기 값을 사용하는 컴파일러가 0%2 될 것 result = value%2;의 값을 설정 한 후 cin을 사용

.

result = value%2;을 설정하기 전에 cin>>value;을 사용해야하는 이유입니다.

+1

대단히 감사합니다! 그것은 매우 도움이되었다! – Danthecardboardman

+3

코드가 "위에서 아래로"실행되지 않는 언어가 많이 있습니다. 또한 'result = value % 2;'와 같은 명령문은 실제로 언제든지'result'를 검사하면 그 시간에'value'의 값을 반환한다는 것을 의미합니다. mod 2 –

+0

몇 가지 예를 들려 줄 수 있습니까? –

1

C++은 코드를 위에서 아래로 한 줄씩 읽습니다. 당신이 넣어 전에

당신이 cin >> value; 전에 int result = value % 2;을 넣어
#include <iostream> 

using namespace std; 

int main() { 
int a; 
cout << "a="; 
cin >> a ; 

if(a%2==0) 
    {cout<<"a is even";} 
else 
    {cout<<"a is uneven";} 
} 
+0

고마워요! 그것은 훨씬 단순한 버전입니다. "% 2 == 0"을위한 정수를 만들려고 했으므로 다시 사용하려면 "결과"를 써야합니다. 대신 전체 "% 2 == 0"하지만 둘 다 잘 작동합니다! 게다가 나는 어디에서 "결과"를 다시 사용할지 모르기 때문에 너의 것이 더 나을 수도있다.어쨌든 고마워요! – Danthecardboardman

1

, 프로그램이 결과를 계산합니다 : 당신이 그것을 읽고 싶다면 당신은 당신의 변수의 첫째가 프로그램의 훨씬 더 간단한 버전을 만들어 int로해야합니다 입력을 통해 int value 내부의 값. 그래서 프로그램이 계산합니까 int result = 0 % 2;