C++에서 for 사이클에서 여러 변수를 선언할 수 있습니까?

C++에서 for 사이클에서 여러 변수를 선언할 수 있습니까?

2022-06-04 last update

7 minutes reading C++
변수의 성명은 변수 내용에 대한 메모리 위치를 표시하는 것을 의미한다.답은, 그렇습니다.먼저 다음 코드 세그먼트를 고려합니다.
int i = 0;
int j = 0;
int k = 0;
이 세 문장은 다음과 같이 한 문장에 쓸 수 있다.
int i = 0, j = 0, k = 0;
데이터 형식이 있습니다.표현식 사이를 쉼표로 구분합니다.문장은 하나의 분호로 끝난다.한 문장에 여러 변수를 성명했다.
이제 다음 추가 문구를 고려하십시오.
int i++;
int j++;
int k++;
이 세 문장은 다음과 같이 한 문장으로 바꿀 수 있다.
int i++, j++, k++;
여기에는 데이터 유형에 대해 한 문장에 세 가지 표현식이 있다.
다음 세 가지 조건문도 고려해야 한다.
i < 10;
j < 10;
k < 10;
이 세 문장은 다음과 같이 한 문장으로 바꿀 수 있다.
i < 10 && j < 10 && k < 10;
여기에서 세 개의 문장은 하나의 특수한 형식의 표현식으로 조합된다.상술한 상황에서 이러한 표현식은 쉼표로 구분된 것이 아니라 논리 AND와 조합된 것이다.
본고는 for순환에서 여러 변수를 성명하고 사용하는 방법을 설명하고 규칙적인 대응 관계를 가진다.매우 간단한 예는 설명에 쓰인다.

문장 내용






  • 1차원 for 순환


    while 순환


    0에서 9까지의 숫자를 표시하는 while 순환은 다음과 같습니다.
    #include 
    using namespace std;
    
    int main()
    {
    int i=0;
    
    while (i < 10) {
    cout << i << endl;
    i++;
    }
    
    return 0;
    }
    프로그램의 첫 줄은cout 대상의iostream 라이브러리를 포함합니다.프로그램의 다음 줄은 문장이다.별도의 설명이 없으면 C++ 표준 라이브러리에서 사용할 수 있습니다.
    main () 함수에 정수 i=0의 초기화 문장이 있습니다.그 다음은while 순환입니다. 초기화 문장을 고려했습니다.while 조건은 (i<10)입니다. i가 10보다 작으면 (영원히 10과 같지 않음) while 순환체에 있는cout iostream 대상은 i의 값을 표시합니다. while 순환 중의 다음 문장은 i(i의 값 더하기 1)를 증가시킵니다.
    출력은 다음과 같지만 수직으로 표시됩니다.
    0 1 2 3 4 5 6 7 8 9

    1차원 for 순환


    상기 main () 함수의 코드는 다음 프로그램에서 for 순환으로 재현됩니다.
    #include 
    using namespace std;
    
    int main()
    {
    for (int i = 0; i < 10; i++) {
    cout << i << endl;
    }
    
    return 0;
    }
    출력은 상술한 상황과 같다.상기 코드의 초기화 문장은 현재 for순환 괄호 중의 첫 번째 문장이고 뒤에는 분호이다.상기 코드의while 조건은 현재 for 순환 괄호 중의 두 번째 문장, 뒷부분 번호입니다.앞의 코드에 대해while 순환체의 increment 문장은 현재 for 순환 괄호 중의 세 번째 문장입니다.그것의 뒤에는 괄호 중의 마지막 문장이기 때문에 분호가 없다.for 순환의 유일한 문장은 i의 값을 표시합니다.

    2D for 순환 중첩while 순환


    상술한 1차원 for 순환은 하나의 열을 표시합니다. 모든 칸에는 i의 값이 있습니다. 다른while 순환에 끼워진while 순환은 하나의 표를 표시합니다. 모든 칸에는 하나의 숫자가 있습니다. (이 위치의 j값)다음 절차에 대해 설명합니다.
    #include 
    using namespace std;
    
    int main()
    {
    int i=0;
    while (i < 5) {
    int j=0;
    while (j < 5) {
    cout << j << ' ';
    j++;
    }
    cout << endl;
    i++;
    }
    
    return 0;
    }
    출력:
    0 1 2 3 4
    0 1 2 3 4
    0 1 2 3 4
    0 1 2 3 4
    0 1 2 3 4
    i 변수는 행을 결정합니다.j 변수 확정 열.이 코드에서 i와 j의 최대 값은 각각 4입니다.i의 값이 인쇄되지 않았습니다.각 j 값에 대해 수평으로 j 값을 인쇄합니다.각 줄의 다음 값을 수평으로 인쇄합니다.
    두 개의 초기화 문장이 있다. 하나는 i, 하나는 j로 모두 0으로 초기화된다.j의 초기화 문장은 외부 순환에 있습니다.이런 방식으로 모든 줄(수평선)에 대해 j를 다시 초기화합니다.이렇게 하면 j는 줄마다 0에서 4의 숫자를 생성할 수 있다.나의 가치는 영원히 인쇄되지 않을 것이다.그것은 줄 번호만 표시한다.i 중첩 순환의 외부와 아래에서 점차적으로 증가합니다.다음 줄의 목적을 위해 i는 점차적으로 증가한다.

    중첩 for 루프


    다음 중첩된 for 순환은 상기 중첩된while 순환과 같은 결과를 생성합니다(표).
    #include 
    using namespace std;
    
    int main()
    {
    for (int i=0; i < 5; i++) {
    for (int j=0; j < 5; j++) {
    cout << j << ' ';
    }
    cout << endl;
    }
    
    return 0;
    }
    모든 for 순환의 괄호는 자신의 초기화 문장, 조건 문장과 증량 문장이 있다.

    일회성 순환


    위의 표의 출력은 초기화 문장과 조건 문장을 포함하는while 순환으로 생성할 수 있습니다.그러나if구조에서 0을 j에 재분배하고 i를 추가해야 한다.다음 코드는 다음과 같습니다.
    #include 
    using namespace std;
    
    int main()
    {
    int i=0, j=0;
    while (i < 5 && j <5) {
    cout << j << ' ';
    j++;
    if (j == 5) {
    cout << endl;
    j=0;
    i++;
    }
    }
    
    return 0;
    }
    출력은 위 표와 같습니다.

    회로용


    위의 표 출력은 하나의 for 순환으로 생성할 수 있으며, 초기화 문장과 조건 문장이 있습니다.그러나if구조에서 0을 j에 재분배하고 i를 추가해야 한다.다음 절차에 대해 설명합니다.
    #include 
    using namespace std;
    
    int main()
    {
    for (int i=0, j=0; i < 5 && j <5; j++) {
    cout << j << ' ';
    if (j == 4) {
    cout << endl;
    j = -1;
    i++;
    }
    }
    
    return 0;
    }
    출력은 위 표와 같습니다.그러나 여기에서 j는 순환이 끝날 때 점차적으로 증가하기 때문에 괄호에서if조건은 (j==4)이고 j는 다시 분배되며 모든 행위는 -1이다.
    이곳의 공간은 for 순환에서 두 변수를 설명하는 것이다.따라서 for 순환에서 여러 변수를 설명할 수 있습니다.

    이전 대각선 주소 지정


    네모난 책상에서 주 대각선은 왼쪽 상단에서 오른쪽 하단까지의 대각선이다.다음 프로그램은 위 테이블의 앞 대각선 좌표를 표시합니다.
    #include 
    using namespace std;
    
    int main()
    {
    for (int i=0, j=0; i < 5 && j <5; i++,j++) {
    cout << i << ',' << j << ' ';
    }
    cout << endl;
    
    return 0;
    }
    출력:
    0,0 1,1 2,2 3,3 4,4
    프로그램에서 for 순환의 괄호에 두 변수가 있음을 주의하십시오.조건은 논리 AND와 관련된 두 가지 변수가 있다.increment 문장에는 두 개의 변수가 있는데, 각 변수는 하나를 추가해서 점차적으로 증가한다.이 경우, for 순환 주체의 원 문장은 전도 대각선의 좌표를 인쇄합니다.

    3차원 for 순환


    다차원 데이터 집합 칸의 모든 값을 인쇄하는 것은 매우 번거로울 수 있습니다.다음 프로그램은 입방체의 주 대각선의 좌표만 인쇄합니다.
    #include 
    using namespace std;
    
    int main()
    {
    for (int i=0,j=0,k=0; i<5&&j<5&&k<5; i++,j++,k++) {
    cout << i << ',' << j << ',' << k << ' ';
    }
    cout << endl;
    
    return 0;
    }
    출력:
    0,0,0 1,1,1 2,2,2 3,3,3 4,4,4
    초기화 문장에는 세 가지 변수가 있음을 주의하십시오.condition 문장에는 세 개의 변수가 있고, increment 문장에는 세 개의 변수가 있다.for 순환하는 주체 중 한 문장만 있습니다.

    가능한 이점


    for 루프를 사용하여 사각형 테이블에 있는 셀의 모든 값을 표시하는 것을 고려하십시오.
    하나의 순환을 끼워 넣는 상황에 비해 초기화 문장과 조건에서 이 두 변수를 사용하는 것은 속도적으로 아무런 장점이 없다.
    그러나 테이블에서 선택한 값에만 접근하면 초기화 문장, 조건 문장과 증량 문장에서 이 두 변수를 사용하면 속도적으로 장점이 있다.어떤 의미에서 말하자면, 많은 값을 삭제하기 전에는 모든 값에 접근하지 않는다.다음 프로그램에서 좌표 쌍 (전 대각선에 있음) 마다 인쇄합니다.
    #include 
    using namespace std;
    
    int main()
    {
    for (int i=0, j=0; i < 10 && j <10; i+=2,j+=2) {
    cout << i << ',' << j << ' ';
    }
    cout << endl;
    
    return 0;
    }
    출력:
    0,0 2,2 4,4 6,6 8,8
    for 순환 중에는 여전히 한 문장만 있습니다.이런 방식으로 속도 우위를 얻으려면 조건 문장과/또는 증량 문장에 추가 선택 논리를 포함해야 한다.초기화 문장의 초기화 표현식은 0으로 초기화할 필요가 없을 수도 있습니다.
    위의 코드에서 increment 문장은 다음과 같습니다.
    i+=2,j+=2
    즉,
    i = i+2, j = j+2;

    결론


    네, for 순환에서 여러 변수를 설명할 수 있습니다.이제 for 순환에서 여러 변수를 설명할 수 있습니다. 다음과 같습니다. 초기화 문장에서 쉼표로 여러 변수를 구분하기만 하면 됩니다.분호로 완전한 초기화 문장을 끝내는 것을 잊지 마라.구조 요소의 접근이 선택적이어야 한다면, 이 변수들은 조건과/또는 증량 문장에서, for순환의 괄호에서 사용해야 하며, 추가 논리가 필요할 수도 있습니다.