1. 원형 구조
루프 조건이 충족되면 루프 명령문은 특정 코드를 반복적으로 실행할 수 있습니다. 이 반복 코드를 루프 바디 명령문이라고합니다. 이 루프 본체가 반복적으로 실행되면 루프 판단 조건은 루프를 종료하기 위해 적절한 시간에 False로 수정해야하며, 그렇지 않으면 루프가 계속 실행되어 죽은 루프가 형성됩니다.
루프 문의 구성 :
초기화 명세서 : 하나 이상의 진술,이 진술은 일부 초기화 작업을 완료합니다.
결정 조건부 진술 : 이것은 부울 표현으로 루프 본체를 실행할지 여부를 결정할 수 있습니다.
루프 바디 문 :이 부분은 루프 바디 문으로 여러 번해야 할 일입니다.
제어 조건 명세서 :이 부분은 사이클 본문의 끝 이후에 다음주기 판단 조건이 실행되기 전에 실행됩니다. 루프 조건에서 변수를 제어함으로써 루프는 적절한 시간에 종료됩니다.
EG : "Helloworld"가 콘솔에서 10 번 출력되면
초기화 명세서 : 초기화를 처음으로 정의하십시오.
판단 조건 진술 : 횟수는 10 배를 초과 할 수 없습니다.
루프 바디 명령문 : "Helloworld"문을 출력하십시오.
제어 조건 명세서 : 다음에 변경된 시간이 변경됩니다.
2. 루프 구조 (루프 명령문)
루프 명령문 형식 :
for (초기화 명세서; 판단 조건 진술; 조건부 제어) {
루프 바디 문장;
}
실행 프로세스 :
A : 초기화 명령문을 실행하십시오
B : 판단 조건 진술을 실행하여 결과가 참인지 거짓인지 확인하십시오. 거짓이면 루프가 종료됩니다. 그것이 사실이라면, 계속 실행하십시오.
C : 루프 바디 문장을 실행하십시오
D : 제어 조건 명령문 실행
E : B로 돌아가서 계속하십시오
흐름도 :
참고 :
(1) 판단 조건 진술의 결과는 부울 유형입니다.
(2) 루프 명령문이 단일 문자 인 경우 버팀대를 생략 할 수 있습니다. 여러 문장 인 경우 버팀대를 생략 할 수 없습니다. 그것을 생략하지 않는 것이 좋습니다.
(3) 일반적으로 말하기 : 왼쪽 버팀대가있는 경우 세미콜론이 없으며 세미콜론이 있으면 왼쪽 버팀대가 없습니다.
예제 코드 :
1. 1-100 사이의 짝수의 합을 찾으십시오.
/* 요구 사항 : A : 1-100의 합을 찾으십시오. B : 1-100*/class fortest1 {public static void main (String [] args) 사이의 짝수의 합을 찾으십시오. int sum1 = 0; for (int x = 1; x <= 100; x ++) {sum1+= x; } system.out.println ( "1-100 IS :"+sum1); System.out.println("-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- // 방법 2 int sum3 = 0;2. 5의 계승을 찾으십시오.
/* 요구 사항 : 5의 계승을 찾으십시오. Factorior 란 무엇입니까? N! = N*(N-1)! 규칙 n! = n*(n-1)*(n-2)*...*3*2*1 합계 이데올로기. Factorial 생각을 찾으십시오. */class fortest2 {public static void main (String [] args) {// 최종 결과 정의 변수 int jc = 1; // 여기 x는 실제로 2 // (int x = 1; x <= 5; x ++) for (int x = 2; x <= 5; x ++) {jc *= x; } system.out.println ( "1-5 factorial is :"+jc); }}3. 콘솔에서 모든 "Narcissus 번호"를 출력하십시오.
/* 요구 사항 : 콘솔 분석에서 모든 "Narcissus 번호"를 출력 : 우리는 "Narcissus 번호"가 무엇인지 모릅니다. 어떻게해야합니까? 소위 Narcissus 수는 3 자리 수를 나타냅니다. 숫자의 큐브 합은 숫자 자체와 같습니다. 예를 들어 : 153은 수선화입니다. 153 = 1*1*1 + 5*5*5 + 3*3*3 = 1 + 125 + 27 = 153 a : 3 자리 숫자는 실제로 범위를 알려줍니다. B : FER 루프를 통해 각 트리플 숫자 번호를 얻을 수 있지만 문제는이 트리플 숫자 번호 10, 수백 개의 데이터를 얻는 방법입니다. 데이터, 10 및 수백의 데이터를 어떻게 얻습니까? Suppose there is a data: 153 ge: 153%10 = 3 shi: 153/10%10 = 5 bai: 153/10/10%10 = 1 qian: x/10/10/10%10 wan: x/10/10/10/10%10 ... C: Let ge*ge*ge+shi*shi*shi+bai*bai*bai compare with the data, and output the data on the console. */class fortest3 {public static void main (String [] args) {// 트리플 숫자는 실제로 범위를 알려줍니다. for (int x = 100; x <1000; x ++) {int ge = x%10; int shi = x/10%10; int bai = x/10/10%10; // ge*ge*ge+shi*shi*shi+bai*bai*bai는 (x == (x == (ge*ge*ge+shi*shi*shi+bai*bai)) {// 동일 한 경우 콘솔에서 데이터를 출력합니다. System.out.println (x); }}}}3. 루프 구조 (while loop 문)
루프 명령문 형식 :
while (판단 조건 진술) {
루프 바디 문장;
}
// 확장 형식 초기화 문;
while (판단 조건 진술) {
루프 바디 문장;
제어 조건 명세서;
}
흐름도 :
루프와 while 루프의 차이점 :
루프 문 및 while 루프 문은 동등하게 변환 할 수 있지만 여전히 약간의 차이가 있습니다.
(1) 사용 차이 :
제어 조건 문으로 제어되는 변수는 FOR 루프 종료 후에 액세스 할 수 없으며 while 루프 종료 후에도 계속 사용할 수 있습니다. 계속 사용하려면 사용 중에 사용하십시오. 그렇지 않으면 사용하는 것이 좋습니다. 그 이유는 for 루프가 끝나고 변수가 메모리에서 사라져서 메모리 사용의 효율성을 향상시킬 수 있기 때문입니다.
(2) 장면 차이 :
루프의 경우 범위 판단에 대한 작동에 적합합니다. 루프는 불분명 한 판단 수에 적합합니다.
예제 코드 :
우리나라에서 가장 높은 산은 에베레스트 산 : 8848m입니다. 나는 이제 두께가 0.01m의 충분한 종이를 가지고 있습니다. 두께가 에베레스트 산의 높이보다 낮지 않도록 몇 번 접히도록 물어볼 수 있습니까?
/* 우리나라에서 가장 높은 산은 에베레스트 산 : 8848m입니다. 나는 이제 두께가 0.01m의 충분한 종이를 가지고 있습니다. 몇 번이나 접히면 에베레스트 산의 높이보다 두께가 낮지 않도록 물어볼 수 있습니까? 분석 : A : 통계 변수 정의, 기본값은 0 B입니다. 가장 높은 피크는 에베레스트 산입니다 : 8848m 최종 두께입니다. 나는 이제 두께가 0.01m 인 충분히 큰 종이를 가지고 있습니다. 이것은 초기 두께 c입니다. 한 번 접 으면 어떤 변화가 발생합니까? 즉, 두께는 이전보다 두 배가됩니다. D : 각 변화의 두께가 에베레스트 산의 높이를 초과하지 않는 한, 통계적 변수 ++ E : 출력 통계 변수가 접 힙니다. */class whiletest01 {public static void main (String [] args) {// 통계 변수를 정의하면 기본값은 0 int count = 0입니다. // 가장 높은 피크는 Mount Everest입니다 : 8848m 이것은 최종 두께입니다. // 이제 두께가 충분한 용지가 있습니다. int start = 1; while (start <end) {// 각 변경의 두께가 에베레스트 산의 높이를 초과하지 않는 한, 접히고 통계 변수 ++ 카운트 ++; // 한 번 접힌 경우 어떤 변경이 발생합니까? 두께는 이전의 두 배입니다. 시작 *= 2; System.out.println ( "th"+count+"두께는"+start); } // 출력 통계 변수. System.out.println ( ""+count+"time"); }}4. 루프 구조 (do… while loop 문)
기본 형식 :
하다 {
루프 바디 문장;
} while ((판단 조건 진술); [/code]
확장 형식 :
초기화 명세서;
하다 {
루프 바디 문장;
제어 조건 명세서;
} while ((판단 조건 진술); [/code]
흐름도 :
5. 주기적 구조의 차이 및 예방 조치 :
세 가지 루프 문은 실제로 동일한 함수를 완성 할 수 있으므로 동등하게 변환 할 수 있지만 여전히 작은 차이가 있습니다.
DO… LOOP는 루프 본체를 적어도 한 번 실행합니다. 루프 및 while 루프의 경우 조건이 사실 일 때만 루프 본체 만 실행합니다.
1. 참고 :
프로그램을 작성할 때 For Loop에 우선 순위를 부여한 다음 While Loop을 고려한 다음 마지막으로 DO를 고려해야합니다.
다음 코드는 죽은 루프입니다.
while (true) {}
을 위한(;;){}
2. 루프의 중첩 사용 : 루프 명령문 자체의 루프 본체는 루프 문입니다.
(1) 질문 1 : 4 행과 5 개의 열이있는 별 (*) 패턴을 출력하십시오.
팁 : 외부 루프로 제어되는 행 수와 내부 루프로 제어되는 열 수
/*요구 사항 : 다음 모양을 출력하십시오*** *** **** **** ** ***** 팁 : 외부 루프는 행의 수를 제어하고, 내부 루프는 열의 수를 제어합니다*/class forfortest01 {public static void main (string [] args) {// 간단한 관찰을 통해, 우리는 5이며, 컬럼의 수가 먼 곳에 있음을 알 수 있습니다. 5 (int x = 0; x <5; x ++)에 대한 5 열 {for (int y = 0; y <5; y ++) {System.out.print ( "*"); } system.out.println (); } System.out.println("---------------------------------------------------------); //We have implemented a shape of 5 rows and 5 columns//But this is not what we want //What we want is the change of the number of columns//How does the number of columns change? //The first row: 1 column y=0,y<=0,y++ //The second row: 2 column y = 0, y <= 1, y ++ // 세 번째 줄 : 3 열 y = 0, y <= 2, y ++ // 네 번째 행 : 4 열 y = 0, y <= 3, y ++ // 5 열 : 5 열 y = 0, y <= 4, y ++ // x = 0, y ++ // 다음 버전은 x = 0입니다. for (int x = 0; x ++) {int y = 0; y <= x;(2) 질문 2 : 콘솔의 아홉 아홉 가지 곱셈 테이블을 출력 :
/* 요구 사항 : 콘솔에서 9-NINE 곱셈 테이블을 출력합니다. First we write the nine-nine multiplication table: 1*1=1 1*2=2 2*2=4 1*3=3 2*3=6 3*3=9 1*4=4 2*4=8 3*4=12 4*4=16 ... 1*9=9 2*9=18 3*9=27 ... Let's first see this nine-nine multiplication table as such: * ** ********* ********* ********* ********* ********* ********* 참고 : '/x'x는이 방법을 전송 문자라고합니다. '/t'탭 문자의 위치 (tabtab key) '/r'enter '/n'line break */class forfortest02 {public static void main (string [] args) {for (int x = 0; x <9; x ++) {(int y = 0; y <= x; y ++) {system.out.print ( " *"); } system.out.println (); } system.out.println ( "------------------------"; // 데이터를 사용하려면 (int x = 1; x <= 9; x ++) {for (int y = 1; y <= x; y ++) {system.out.print (y+"*"+x+"="+y*x+"/t"); } system.out.println (); }}}실행 효과 :
6. 점프 제어 명세서 :
우리가 이미 전에 말했듯이, Java의 Goto는 예약 된 단어이며 현재 사용될 수 없습니다. 프로그램의 보안을 향상시키기위한 GOTO 진술은 없지만 많은 불편 함을 가져옵니다. 예를 들어, 특정 루프가 특정 단계를 알고있을 때 끝내고 싶습니다. 지금은 할 수 없습니다. 이 결함을 보충하기 위해 Java는 휴식을 제공하고, 계속하고, 제어 점프 및 진술의 인터럽트로 돌아갑니다.
인터럽트를 중단하십시오
계속하다
반품
1. 점프 제어 명령문 (Break) :
중단 시나리오 사용 :
~ 구조 선택을위한 스위치 문에서
~ 루프 명령문에서 (심판이 루프 문에 추가되는 경우)
참고 : 사용 시나리오를 떠나는 것은 의미가 없습니다
휴식의 기능 :
A : 단일 계층 루프에서 벗어나십시오
B : 멀티 레이어 루프에서 벗어납니다
이 효과를 달성하려면 무언가를 알아야합니다. 레이블이있는 진술. 태그 이름은 Java 이름 지정 규칙을 준수해야합니다
체재:
태그 이름 : 문
예제 코드 :
/* 제어 점프 명령문 : 중단 : 인터럽트 계속 : 계속 : 반환 : 반환 중단 : 중단 의미 사용 시나리오 : A : 스위치 문 B : 루프 문. (루프 문에 판단이 추가 된 경우) 참고 : 위의 두 장면을 떠나는 것은 의미가 없습니다. 그것을 사용하는 방법? A : 단일 층 루프 B에서 헤어질 수 있습니다. 다층 루프에서 벗어나이 효과를 달성하려면 무언가를 알아야합니다. 레이블이있는 진술. 형식 : 태그 이름 : state */class breakdemo {public static void main (String [] args) {// 외부 스위치 또는 루프 // break; // (int x = 0; x <10; x ++) {if (x == 3) {break; } system.out.println ( "HelloWorld"); } system.out.println ( "Over"); System.out.println ( "--------------"); // 다층 루프 wc : for (int x = 0; x <3; x ++) {nc : for (int y = 0; y <4; y ++) {if (y == 2) {// nc; Break wc; } system.out.print ( "*"); } system.out.println (); }}}38 행에서는 WC라는 외부 루프에 태그를 추가 한 다음 42 행 에서이 태그에서 뛰어 내립니다.
실행 효과 :
참고 : 실제 개발에서 다중 계층 루핑 점프 기능은 거의 불가능합니다.
2. 점프 제어 명세서 (계속) :
계속해서 시나리오를 사용하십시오.
루프 명령문에 사용 시나리오를 떠날 필요는 없습니다.
계속과 중단의 차이점 :
단일 계층 루프에서 브레이크 아웃은 루프에서 계속 나와 다음 실행에 들어갑니다.
효과는 다음과 같습니다.
인터뷰 질문 :
for (int x = 1; x <= 10; x ++) {if (x%3 == 0) {// 여기에 코드를 채우는} system.out.println ( "Java Learning"); }다음 조건을 충족시키기 위해 위 코드의 4 행을 채우십시오.
콘솔에서 2 번 출력하고 싶습니다. "Java Learn"브레이크;
콘솔에서 7 번 출력하고 싶습니다. "Java Learning"은 계속됩니다.
콘솔에서 13 번 출력하고 싶습니다 : "Java Learning"System.out.println ( "Java Learning");
3. 점프 제어 명세서 (반환)
반환 키워드는 루프 본체에서 뛰어 내리지 않는 것입니다. 보다 일반적으로 사용되는 기능은 메소드를 종료하는 것입니다.
무뚝뚝하게 말하면 : 리턴의 함수는 루프를 끝내는 것이 아니라 메소드를 끝내는 것입니다.
효과는 다음과 같습니다.
휴식과 결합 된 루프 진술 연습 :
인터뷰 질문 : Xiaofang의 어머니는 하루에 2.5 위안을 주면 그녀는 그것을 구할 것입니다. 그러나이 날이 5 일이거나 5의 배수가 될 때마다 6 위안을 소비합니다. Xiaofang은 며칠 동안 100 위안으로 절약 할 수 있습니까?
코드 구현 :
/* 요구 사항 : Xiaofang의 어머니는 하루에 2.5 위안을 주면 저장할 것입니다. 그러나이 날이 5 일이거나 5의 배수가 될 때마다 6 위안을 소비합니다. Xiaofang은 며칠 동안 100 위안으로 절약 할 수 있습니까? 분석 : a : Xiaofang의 어머니는 하루에 2.5 위안, 이중 주일 = 2.5; B : 그녀는 이중 daysum = 0을 절약 할 것입니다. C : 첫날부터 int daycount = 1을 저장하십시오. D : Xiaofang은 100 위안을 절약 할 수 있습니까? 이중 결과 = 100; E : 오늘이 5 일을 저축하는 5 일이거나 5의 배수라면, 그녀는 6 위안을 소비하여 Daycount의 가치를 판단해야한다는 것을 나타냅니다. 5가 나뉘어지면 6 위안이 빼게됩니다. daysum- = 6; 이것은 또한 문제를 의미합니다. 즉, 5 일의 배수가 아닌 경우 돈은 Daysum += Daymoney로 축적되어야합니다. F : 며칠이 며칠을 모르기 때문에 죽은 고리를 사용합니다. 100 위안을 초과하면 루프를 종료 할 것입니다. */class whiledemo {public static void main (string [] args) {// 매일 저장 될 돈은 2.5 위안 이중 주일 = 2.5; // 저장의 초기화 값은 0 Double Daysum = 0입니다. // Storage Int DayCount = 1 첫날부터 1; // 최종 스토리지는 100 이상이고 int result = 100; // 며칠을 모르기 때문에 죽은 루프를 사용하는 동안 (true) {// 돈을 축적합니다 daysum += daymoney; // 100 위안을 초과하면 루프를 종료합니다. if (daysum> = result) {System.out.println ( "총 100 개의 위안을 총 스토리지에 소비"); 부서지다; } if (dayCount%5 == 0) {// 6 위안 Daysum- = 6; System.out.println ( "Things"+DayCount+"총 6 위안을 소비합니다"); } // DayCount ++ 변경 일수; }}}위는이 기사의 모든 내용입니다. 모든 사람의 학습에 도움이되기를 바랍니다. 모든 사람이 wulin.com을 더 지원하기를 바랍니다.