각 코드의 실행 순서 결과에 직접적인 영향을 미칩니다. 우리가 완료하려는 기능을 달성하기 위해 코드의 실행 순서를 제어해야 하는 경우가 많습니다
. : 흐름 제어는 우리의 목적을 달성하기 위해 작성된 코드가 어떤 순서로 실행되어야 하는지를 제어하는 것입니다.
프로세스 제어에는 순차 구조, 분기 구조 및 루프 구조의 세 가지 주요 구조가 있습니다. 이 세 가지 구조는 코드 실행 순서를 나타냅니다.
순차 구조는 프로그램에서 가장 간단하고 기본적인 프로세스 제어입니다. 이전에 작성한 코드는 모두 순차 구조에 속합니다(즉, 위에서 아래로 실행됨). 프로그램은 고정된 구문 구조를 따르지 않습니다. 코드의 순서대로
위에서 아래로 순차적으로 실행되며, 서로 다른 조건에 따라 서로 다른 경로 코드가 실행되어(여러 개의 실행 코드 중 하나를 선택하는 과정)
1.21 js 언어는 두 가지 분기 구조를 제공합니다. 문
if
// 조건이 true이면 코드를 실행하고, 그렇지 않으면 아무것도 하지 않습니다
.
//조건 성립 시 실행을 위한 코드 언어 == 조건식이 true인 경우에만 실행
}
명령문은 동작으로 이해될 수 있습니다. 일반적인 상황에서 프로그램은 여러 개의 명령문으로 구성됩니다. , 그것은 하나씩 설명문
코드 데모
로 나누어질 것입니다var age=19; if(나이>=18){ console.log('당신은 성인입니다'); //나이=19이므로 이미 성인임을 출력하고, 18세보다 크면 if 문이 실행됩니다. } 변수 연령=1; if(나이>=18){ console.log('당신은 성인입니다'); //아무것도 출력하지 않습니다.age=1;<18, if 문은 실행되지 않으므로 }
실행 프로세스가
없습니다.
구문 구조
//조건이 성립하면 if에서 코드를 실행하고, 그렇지 않으면 else
if(조건식)에서 코드를 실행 {
//조건을 만족하는 실행 코드
}else{
//실행 조건을 만족하지 않는 코드
}
실행 과정
코드 데모
var age=prompt('나이를 입력하세요');//사용자 입력 if(age>=18){ console.log('이제 마셔도 됩니다'); }또 다른{ console.log('죄송합니다. 미성년자는 AD 칼슘만 마실 수 있습니다.'); } //해당 연도가 실행 연도인지 판단 var year=prompt('연도를 입력하세요:'); if(연도%4==0&&연도%100!=0||연도%400==0){ Alert('입력하신 연도는 윤년입니다.'); }또 다른{ Alert('입력하신 연도는 평년입니다.'); }
구문 구조
// 여러 조건을 확인하는 데 적합
if(조건식) {
명령문 1;
}else if(조건식){
명령문 2;
}else if(조건식){
명령문 3
...
}else{
//위 조건을 만족하지 않을 경우 이 코드를 실행
}
프로세스 제어
코드 데모
//미니 계산기: 두 개의 숫자와 연산 기호를 입력하여 해당 값을 얻습니다. var yi = +prompt('첫 번째 숫자를 입력하세요'); //암시적으로 숫자 유형으로 변환하려면 덧셈, 뺄셈, 곱셈, 나눗셈을 사용하거나 praseInt(변수) 또는 Parsefloat(변수) 정수 및 부동 소수점 숫자를 사용하세요. fuhao = 프롬프트( '연산자를 입력해주세요'); var er = +prompt('두 번째 숫자를 입력하세요'); if (푸하오 == '+') { var shu = yi + 어; } else if (푸하오 == '-') { var shu = yi - 어; } else if (푸하오 == '/') { var 슈 = 이 / 어; } else if (푸하오 == '*') { var shu = yi * 어; } else if (푸하오 == '%') { var shu = yi % er; } 또 다른 { Alert('필요한 내용을 입력하세요:'); } Alert(shu);
은 다중 분기 문이기도 합니다. 변수에 대해 일련의 특정 값을 설정하려는 경우 스위치 스위치
( 표현) {
case value1:
//표현식이 value1과 같을 때 실행될 코드
break;
case value2:
//표현식이 value2와 같을 때 실행될 코드
break;
//표현식
이 value2와 같을 때 실행될 코드 어떤 값과도 같지 않습니다
. }
프로세스 제어
코드 데모
var Fruit =prompt('구매하고 싶은 과일을 입력하세요:'); 스위치(과일){ '사과'의 경우: Alert('사과 가격은 3.5/catty'); 부서지다; 케이스 '열매': Alert('리치 가격은 10.5/진'); 부서지다; 기본: Alert('과일 없음'); }개발 중에 과일의 값이 케이스의 값과 일치
하면
스위치 문과 if else if 문의 차이점은
일반적으로 두 문이 서로 변환될 수 있다는 것입니다
. if...else... 문은 값을 결정하기 위한 비교인 반면, if...else... 문은 더 유연하여 범위 판단(특정 범위보다 큼, 같음)에 자주 사용됩니다
. 프로그램의 조건문을 직접 실행하는 것이 더 효율적입니다. 그러나 if...else...문에는 여러 가지 조건이 있으므로 여러 번 판단해야 합니다.
분기 수가 적을수록 if...else... 문의 실행 효율성은 switch 문의 실행 효율성보다 높습니다.
분기가 많을수록 switch 문의 실행 효율성이 높아지고 구조가 더 명확해집니다.
은
실제 문제에서 반복되는 작업이 많기 때문에 프로그램에서 이러한 작업을 수행하려면
있습니다. 루프 문:
프로그램에서 반복적으로 실행되는 명령문 그룹을 루프 본문이라고 합니다. 루프 종료
루프 본문과 루프 종료 조건으로 구성된 명령문을 루프 명령문이라고 합니다.
for 루프의구문 구조는
주로 계산과 관련하여 특정 코드를 여러 번 반복하는 데 사용됩니다.
(초기화 변수; 조건식; 연산식) {에 대한
명령문 구조는 다음과 같습니다
.//루프 본문
}
프로세스 제어
(var i=1;i<=10;i++){에 대한
코드 데모
console.log('나를 좋아하시나요?'); }//학급 총점과 평균 점수를 계산합니다. var num = 프롬프트('학급의 총 인원수를 입력하세요') 변수 합계 = 0, 평균 = 0; for (var i = 1; i <= num; i++) { var 점수 = 프롬프트('' + i + ' 학생의 점수를 입력하세요') //프롬프트에서 가져온 데이터는 문자열이므로 숫자로 변환해야 합니다. sum += parsInt(score); } 평균 = 합계 / 숫자; Alert('수업 총점:' + sum); Alert('수업 평균 점수:' + sum);//한 줄에 5개의 하트를 인쇄합니다 for (var i=0;i<=4;i++){ console.log('*'); }
이중 계층 for 루프(루프 중첩)
루프 중첩은 루프 문 내에 루프 문을 정의하는 문법 구조를 나타냅니다. 예를 들어, for 루프 내에 for 루프를 중첩하는 것을 이중 계층 for라고 합니다. loop
내부 루프를 내부 루프, 외부 루프를 외부 루프라고 부릅니다. 외부
루프는 한 번 반복되며 내부 루프는 처음부터 끝까지 실행됩니다.
// 하위 수준: 5행 5열 var
str
=''; for (var i=0;i<=4;i++){ for (var j=0;j<=4;j++){ str+='*'; } str+='n'; } console.log(str); //고급: n개 행과 n개 열 varrows = 프롬프트('행 수를 입력하세요:'); var cols = 프롬프트('열의 개수를 입력하세요'); var str=''; for (var i = 1; i <= 행; i++) { for (var j = 1; j <= cols; j++) { str+='*'; } str+='n'; } console.log(str); //역삼각형 인쇄 var str=''; (var i=1;i<=10;i++){ for (var j=i;j<=10;j++){ str+='*'; } str+='n'; } console.log(str); /* 1 ********** 10 2 *********9 3 ********8 4 *******7 5******6 6*****5 7****4 8***3 9**2 10 *1 *///핵심 알고리즘: var j=i;j<=10;j++//아이디어: 먼저 결과를 분석하고 행과 열 사이의 관계를 관찰합니다. 그런 다음 내부 루프의 알고리즘을 결정합니다. // 위와 같은 아이디어인 정삼각형을 인쇄합니다. var str=''; for (var i=1;i<=9;i++){ for (var j=1;j<=i;j++){ str+='*'; } str+='n'; } console.log(str);//구구단을 인쇄하려면 정삼각형의 별표를 방정식으로 바꾸십시오. var str = ''; for (var i = 1; i <= 9; i++) { for (var j = 1; j <= i; j++) { /* str+='*' */ str += i + '*' + i + '=' + i * j + ' t'; } str += 'n'; } console.log(str);//기억하세요: 외부 루프는 한 번 반복되고 내부 루프는 처음부터 끝까지 실행됩니다.
.
while 루프
while 문은 표현식이 true일 때까지 조건식이 true라는 전제하에 루프에서 지정된 코드 조각을 실행할 수 있습니다
.조건을 만족하지 않으면 루프가 종료됩니다
.while 문의 구문 구조
while(조건식) {
//Loop body 문;
}
실행 아이디어:
먼저 조건식을 실행하고, 조건이 true이면 루프 본문 코드를 실행하고, 그렇지 않으면 루프를 종료하고 다음 코드를 실행하여
루프 본문 이후에 루프 본문 코드를
실행
코드가 실행되면 프로그램은 조건식을 계속 판단하고 실행합니다. 조건이 여전히 true이면 루프 본문 프로세스가 계속 실행됩니다. 루프 조건이 false가 될 때까지 종료되지 않습니다
. 다음과 같이
코드 데모
var num=1; //변수 초기화 while(num<=10){//조건식 console.log('Hello world'); num++;//연산식 }
참고:
while에는 카운터 업데이트를 완료하고 무한 루프를 방지하기 위한 연산식도 있습니다. (연산식을 추가하지 않았지만 코드를 실행해보니 구글 크롬 인터페이스가 떴네요. 검정색)
카운터 초기화 변수도 있어야 합니다.
while 루프는 어느 정도 for 루프와 동일할 수 있습니다. for 루프에는 while에 있는 초기화된 변수, 조건식, 연산식만 넣으면 됩니다. .
코드 데모
//1세부터 120세까지의 개인 생활을 인쇄합니다. var age = 1; 동안 (나이 <= 120) { console.log('이 사람은 올해입니다' + 나이 + '세'); 나이++; } //2. 1에서 100 사이의 모든 정수의 합을 계산합니다. var sum = 0, 나는 = 1; 동안 (i <= 100) { 합계 += i; 나++; } console.log(sum); //3. 대화 상자를 엽니다. do you love me?를 입력하면 종료 메시지가 표시되고, 그렇지 않으면 계속 묻는 메시지가 표시됩니다. var message='Do you love me'; while(message!=='사랑해요'){ message=prompt('나를 사랑하시나요?'); } Alert('나도 사랑해');
do...while 루프
do...while 문은 실제로 while 문의 변형입니다. 이 루프는 먼저 코드 블록을 한 번 실행한 다음 조건식을 판단합니다. true 이면 루프 본문이 반복적으로 실행되고, 그렇지 않으면 루프를 종료합니다
. while 문의 구문 구조는 다음과 같습니다.
do {
//루프 본문 코드 - 조건식이 true일 때 루프 본문 코드를 반복합니다.
}
실행 아이디어:
루프 본문 코드를 한 번 실행한
후 조건식을 실행합니다. 결과가 true이면 루프 본문 코드를 계속 실행합니다. false인 경우 루프를 종료하고 다음 코드를 계속 실행합니다.
참고: 루프 본문 문을 먼저 실행한 다음 do...while 루프 문이 루프 본문을 한 번 이상 실행하는지 확인합니다.
프로세스 제어
코드 데모
//1세부터 120세까지의 개인 생활을 인쇄합니다. var age = 1; 하다 { console.log('이 사람은 올해입니다' + 나이 + '세'); 나이++; } while (나이 <= 120); //2. 1에서 100 사이의 모든 정수의 합을 계산합니다. var sum = 0, 나는 = 1; 하다 { 합계 += i; 나++; } 동안(i <= 100) console.log(sum); //3. 대화 상자를 엽니다. do you love me?를 입력하면 종료 메시지가 표시되고, 그렇지 않으면 계속 묻는 메시지가 표시됩니다. var message = 'Do you love me'; 하다 { message = 프롬프트('나를 사랑하시나요?'); } while (메시지 !== '사랑해요'); Alert('나도 사랑해');
루프 요약
:계속의 핵심은 이 루프에서 즉시 벗어나 계속 진행하는 데 사용되는 단어입니다. 다음 루프(이 루프 본문에서 계속 이후의 코드는 한 번 덜 실행됩니다).
예
: 빵 5개를 먹었는데 세 번째 빵에 벌레가 있으면 세 번째 빵을 버리고 네 번째와 다섯 번째 빵을 계속 먹습니다.
(var i = 1; i <= 5; i++) { if (i == 3) { 계속하다; } console.log('나는 ' + i + '번째 빵을 먹었습니다'); } 결과: //첫 번째 호빵을 먹었습니다 //두 번째 호빵을 먹었습니다 //네 번째 호빵을 먹었습니다 //네 번째 호빵을 먹었습니다 //다섯 번째 호빵을 먹었습니다
break 키워드
break 키워드는 전체 루프에서 즉시 점프하는 데 사용됩니다(사이클 종료)
예: 빵 다섯 개를 먹은 후 세 번째 빵에서 벌레가 발견되어 식욕을 잃었습니다.
(var i = 1; i <= 5; i++) {에 대한
코드 예
if (i == 3) { 부서지다; } console.log('나는 ' + i + '번째 빵을 먹었습니다'); } 결과; //첫 번째 찐빵을 먹었습니다 //두 번째 찐빵
식별자 명명 규칙
변수, 함수 이름은 의미가 있어야 하며, 변수 이름은 일반적으로 명사, 함수 이름입니다. 일반적으로(var i = 1; i <= 5; i++) {에 대한
if (i == 3) { continue; //한 줄 주석 앞에 공백이 있다는 점에 유의하세요. } console.log('나는 ' + i + '번째 빵을 먹었습니다'); }
연산자 지정
//연산자의 왼쪽과 오른쪽에 공백을 예약합니다 for (var i = 1; i <= 5; i++) { if (i == 3) { 부서지다; } console.log('나는 ' + i + '번째 빵을 먹었습니다'); }