[흥탐] for문에서 지역변수를 두개 선언할 수 있을까?

심채원·2023년 3월 31일
0

-deprecated-

목록 보기
1/11

급!! 알고리즘 문제를 풀다가 궁금해진 한 가지 의문점.
for문에서 지역변수를 두 개 선언하고 싶은데, 가능할까??

사실 답이랑 관련 있는 문제는 아니었고, 순수한 호기심으로 C++ 놀이터에서 탐구해보았다!!

#include <iostream>

using namespace std;

int main () {
    
    for ({int i=0; int j=0;}; i < 5 && j < 5; {j++; i++} ) {
        cout << 'i' << i << endl;
        cout << 'j' << j << endl;
    }
    
    return 0;
}

이전에 중괄호가 여러 줄을 쓰면서 한 실행환경을 만들어준다고 알고 있어서 요로코롬 작성해봤다.
그런데 for 문이라는 특별한 상황 내라서 안 될 것 같았고, 숨 참고 실행을 눌렀는데,,,

역시나 실패했다!! ㅎㅎ
그래서 구글링을 통해 찾아냈다... 그런데 정말 허망했다...

#include <iostream>

using namespace std;

int main () {
    
    for (int i=0, j=0; i < 5 && j < 5; j++, i++ ) {
        cout << 'i' << i << endl;
        cout << 'j' << j << endl;
    }
    
    return 0;
}

변수의 선언과 초기화할 때, ' , '로 나누어서 해도 되었다는 점!
심지어 알고 있었다는 점! 뭔가 for문은 다를 거라고 생각했다.

#include <iostream>

using namespace std;

int main () {
    
    int i=0, j=0;
    i++, j++;
    
    cout << "i : " << i << endl << "j : " << j;
    
    return 0;
}

다음에서 RunJS로 반복문 내에서 두개 이상의 변수를 선언 가능한지 확인해보았다.
C++과 동일하게 for문 조건문 내에서 선언과 증감식이 ' , '로 구분하여도 동일하게 작동한다.

for (let i=0, j=0; i < 5 && j < 10; i++, j+=2) {
  console.log("i입니다 : "+i);
  console.log("j입니다 : "+j);
}

호오... 결국 문제 풀때 사용하진 않았지만 흥미로운 탐구시간이었다!
다음에 또 올게요...!!!

profile
인생의 디테일을 추가하는 심채원

0개의 댓글