같은 단어를 화면에 표시해야 하는 상황을 상상해 보세요. "HELLO"라는 단어를 10번 말합시다. 어떻게 해야 할까요?
cout << 명령을 10번 받아 쓸 수 있습니다. "안녕하세요";;
그런데 10번이 아니라 20, 30, 40번, 200번이 필요하다면? 이 경우 복사하는 데 시간이 오래 걸립니다. 그리고 사용자가 화면에 정보를 표시할 횟수를 선택해야 한다면?
이 작업에 대처하기 위해 LOOP 라는 특수 구성이 도움이 될 것입니다.
루프는 특정 명령 시퀀스가 여러 번 반복되는 알고리즘 구성입니다.
Java 프로그래밍 언어에는 변수(for)가 있는 루프와 조건(while 및 do...while)이 있는 루프의 두 가지 종류의 루프가 있습니다.
첫 번째 유형의 사이클부터 시작하겠습니다.
변수 또는 알려진 단계 수(FOR)가 있는 루프
일부 동작의 반복 횟수를 알고 있거나 알려진 데이터를 사용하여 반복 횟수를 계산할 수 있는 경우가 종종 있습니다. 일부 프로그래밍 언어에는 러시아어로 REPEAT(횟수)처럼 들리는 명령이 있습니다. 즉, 정확한 반복 횟수를 지정할 수 있습니다.
기계 수준에서 이 주기가 어떻게 작동하는지 보는 것은 흥미롭습니다.
1. 특정 메모리 셀이 메모리에 할당되고 반복 횟수가 기록됩니다.
2. 프로그램이 루프 본문을 한 번 실행하면 이 셀(카운터)의 내용이 1씩 감소합니다.
3. 이 셀이 0이면 루프 실행이 종료됩니다.
Java 프로그래밍 언어에는 이러한 구성이 없지만 for 구성이 있습니다.
for 루프 문의 일반적인 형식은 다음과 같습니다.
<예비>
for (/*expression1*/; /*expression2*/; /*expression3*/ )
{
/*하나의 명령문 또는 명령문 블록 - 루프 본문*/;
}
코드>예>
이 구조는 우리가
1. 카운터가 될 메모리 셀을 명시적으로 할당하고 초기값 설정
2. 사이클 본문이 실행될 조건이 작성되었습니다.
3. 이 셀의 값이 어떻게 변경되는지 표시합니다.
실제 부분에서는 Hello라는 단어를 10번 표시하려고 합니다. 다음 작업에서는 이 구성을 보다 자세히 분석합니다.
|
for 루프는 반복되는 작업을 단계별로 실행하는 수단입니다. 작동 방식을 자세히 살펴보겠습니다.
일반적으로 for 루프의 일부는 다음 단계를 수행합니다.
<사업부>1. 초기값을 설정합니다.
<사업부>2. 루프를 계속하기 위해 조건 테스트를 수행합니다.
<사업부>3. 루프 작업을 수행합니다.
<사업부>4. 테스트에 사용된 값을 업데이트합니다.
그런 다음 조건이 충족될 때까지 2-4단계를 반복합니다. 조건이 거짓이 되는 즉시 루프가 종료되고 for 루프 문 다음의 문이 실행됩니다.
<사업부>
루프 문의 일반 형식으로 돌아가서 모든 부분을 더 자세히 분석해 보겠습니다.
<예비>
for (/*expression1*/; /*expression2*/; /*expression3*/ )
{
/*하나의 명령문 또는 명령문 블록 - 루프 본문*/;
}코드>예>
식 1
주기 변수(카운터)의 초기값 설정을 담당하며 세미콜론으로 끝납니다.
예를 들어 :
<예비>
옵션 1) i=0; //주기 변수 i에는 0과 같은 초기 값이 할당됩니다. 이와 같은 기록으로
//변수 i는 루프 전에 선언되어야 합니다.
옵션 2) int i=0; //변수 i는 사이클 헤더에서 즉시 선언할 수 있지만
// 이 경우 루프가 메모리에서 지워진 후
옵션 3) ; //주기 변수의 초기화 및 선언이 전혀 없습니다.
// 이 경우 루프 전에 선언할 수 있습니다.
식 2
<예비>
이것은 for 루프를 계속하기 위한 조건이며 진실을 확인합니다.
i<=10 // i가 10보다 작거나 같으면 루프가 실행됩니다.
조건은 무엇이든 될 수 있습니다
식 3
<예비>
카운터 변수의 값을 변경합니다. 이 값이 없으면 루프는 무한대로 간주됩니다.
i<=10 // i가 10보다 작거나 같으면 루프가 실행됩니다.
조건은 무엇이든 될 수 있습니다
for 루프의 제목 쓰기를 연습해 봅시다.
|
레코드의 또 다른 특징은 루프 본문에 연산자가 하나만 있는 경우 대괄호를 생략할 수 있다는 것입니다.
|
각 헤더 부분에는 쉼표로 구분된 여러 문이 있을 수 있습니다.
제목 예시:
<예비>
for ( i = 0; i < 10; i ++ ) { ... }
//표준 제목
<예비>
for ( i = 0, x = 1.; i < 10; i += 2, x *= 0.1 ){ ... }
// 이 경우 루프 본문 실행 후 변경될 두 변수를 사용합니다. 이들은 변수 i와 x입니다.
// 변수 i는 2단계로 변경됩니다. - i+=2 - i=i+2의 줄임말
// 변수 x는 각 단계마다 0.1배씩 증가합니다. x=x*0.1 - x*=0.1로 약칭
|
지금까지 작성한 for 루프가 있는 모든 프로그램을 범용이라고 할 수는 없습니다. 루프 본문의 반복 횟수를 직접 설정하기 때문입니다.
그러나 반복 횟수가 다른 값에 따라 달라지면 어떻게 될까요? 예를 들어, 사용자 자신이 주기의 반복 횟수를 설정하기를 원합니다.
이 경우 어떻게 해야 할까요?
모든 것이 매우 간단합니다. 숫자 시작 및 종료 값 대신 사용자가 계산하거나 설정할 수 있는 모든 변수를 사용할 수 있습니다.
예를 들어, 1에서 N까지의 숫자 제곱을 표시해야 하며 여기서 변수 N의 값은 사용자가 키보드에서 입력합니다.
프로그램은 다음과 같습니다.
<예비>
#include <iostream>
네임스페이스 표준 사용;
기본()
{
정수 i,N; // i – 루프 변수, N - 제곱을 계산하는 최대 수
cin>> N; // 키보드에서 N 입력
for ( i = 1; i <= N; i ++) // 루프: 1에서 N까지 모든 i에 대해 - 변수 i는 1에서 N까지 순차적으로 값을 가져옵니다.
{
cout << "Kvadrat chisla "<<i<<" 까마귀 " <<i*i<<"\n";; // 숫자의 제곱을 특정 형식으로 출력하고 새 줄로 이동
}
}
루프에 진입하면 i = 1이라는 명령문이 실행된 다음 각 단계마다 변수 i가 1(i ++)씩 증가합니다. 조건 i <= N이 참인 동안 루프가 실행됩니다. 루프 본문에서 유일한 출력 문은 지정된 형식에 따라 화면에 숫자 자체와 사각형을 인쇄합니다.
제곱 또는 기타 낮은 지수의 경우 곱셈을 사용하는 것이 좋습니다.
프로그램을 실행하고 변수 N의 다른 값으로 작업 결과를 확인하십시오.
|