루프가 루프 상태가 반복 루프가 반복적으로 수행되는 루프라고 반복되는 포인트 코드로 실행 된 경우 일 수 있으며,이 루프 상태로 적절한시기에 필요한는 거짓 따라서 그렇지 않으면 루프는 항상 무한 루프를 형성하여 실행되며, 사이클을 종료. 루프는 다음과 같은 네 부분을 포함 할 수 있습니다 :
1. 초기화 문 : 문 또는 문이 문은주기가 시작되기 전에 실행 일부 초기화, 초기화 문을 수행하는 데 사용됩니다.
2. 사이클링 조건 : 이것은 루프 본문을 실행할지 여부를 결정할 수있는 부울 식입니다.
3. 루프 :이 싸이클의 주요 부분이며, 싸이클 조건이 허용하는 경우,이 블록은 반복적으로 수행한다. 블록이 한 줄의 문장 인 경우 중괄호 코드 블록은 생략 할 수 있습니다.
4. 반복문 : 루프 전의 상태를 평가 한 후에 수행 루프에서 수행이 섹션은, 상기 제어 루프는 일반적으로 변수를 조정하기 위해 사용된다되도록 적절한 시간주기의 끝.
위의 네 부분으로 바로 일반적인 분류는하지 모든주기는 네 개의 섹션 매우 명확하게 구분합니다.
루프 1
for 루프는 대부분의 경우에서, 루프 반복 동안 수행-while 루프에 대해 치환 될 수있는, 비교적 단순한 루프. 루프의 전체 구문은 다음과 같습니다 :
(; 루프 조건; 반복 구문을 초기화 문) {에 대한
루프 본체;
}
프로그램이 루프 실행되면, 루프 초기화 문 초기화 문장의 첫 번째 실행 한 번만 루프가 시작되기 전에 실행됩니다. 루프 상태가 반복 명령문이 실행 루프 실행 루프의 종료 후, 루프 본체 true를 반환하는 경우, 루프의 각 반복하기 전에, 우선, 루프 조건의 값을 계산한다. 따라서, for 루프에 대한 루프 조건이 루프를 통해 마지막으로이 거짓 조건을 반환하기 때문에, 루프를 수행하지 않습니다, 두 번 이상 실행되는 루프 본문보다 낫다.
루프 반복 루프 문 루프의 몸체와 함께 넣어하지 않는, 주목할만한, 그래서 현지 경험이 루프의 루프 끝의 몸이, 루프 반복 문 같은 구현됩니다 동안에도 계속합니다.
루프는 한 줄의 문장 인 경우, 루프 본문의 괄호를 생략 할 수있다 :
(; 루프 조건; 반복 구문을 초기화 문) 루프 본문에 대한;
예 : 다음 프로그램 루프 실행의 흐름을 보여
공용 클래스 ForDemo {
공공 정적 무효 메인 (문자열 []에 args) {
경우 (나는 <10, I = 0 int로 난 ++) {
에서 System.out.println ( "I 값"I +);
}
}
}
컴파일하고이 프로그램도 같이 콘솔 (10) 정보를 표시 실행합니다.
도 10 ForDemo 운영 결과
하나의 사이클 조건 단순한 논리식 사실상 루프 초기화 문 복수의 발전을 가능하게하는 동시에 루프 상태가 포함 할 수 논리 연산자에 대한 상기 루프, 루프 초기화 문 표현으로는 다음과 같습니다 :
공용 클래스 ForDemo {
공공 정적 무효 메인 (문자열 []에 args) {
대 (INT B = 0, S = 0, p = 0, B <10 && S <4 && p <10; P ++) {
에서 System.out.println (b ++);
에서 System.out.println (++ S + P의);
}
}
}
위의 코드는 세 가지가 변수를 초기화하지만, 단 하나의 선언, 그래서 당신은 초기화 표현식에 두 개 이상의 변수를 선언해야하는 경우, 이들 변수는 동일한 데이터 형식을 가지고 있어야합니다.
또한, 루프 변형에 대한 몇 가지 흥미로운가 있습니다, 그것은하지 된 사이클의 일부에 의해 정의된다. 다음 자바, 초기화의 일부 또는 전부에, 부분적으로 또는 반복 루프에 대한 조건은 비어있을 수있다 :
공용 클래스 ForDemo {
공공 정적 무효 메인 (문자열 []에 args) {
I 값 int;
대 (I = 0; I <10) {
에서 System.out.println ( "I 값"I +);
내가 ++;
}
}
}
도에 도시 된 바와 같이 컴파일이 프로그램을 실행하여, 콘솔 등의 정보를 표시한다. (11).
도 ForDemo 연산 결과. 11 변형
여기서,이 식에 대한 루프 반복되지 않으며, I는 루프 본체 내부에 배치되는 루프 제어 변수를 증가시킨다. 이 사이클 i가 추가적인 액션 것을 제외하고는, (10)와 같은지 여부를 검사한다마다 것을 의미한다. 물론, 때문에 루프 내부에 내가 증가하므로 루프는 일반 될 수있다.
下面在看for循环的另一个变体,在下面的例子中,for循环的初始化部分也被移出了for循环:
public class ForDemo{
public static void main(String[] args){
int i = 0;
for( ; i < 10; ){
System.out.println("i的值为:" + i);
i++;
}
}
}
重新编译并运行这个程序,控制台将显示如图12所示的信息。
在此版本中,在循环开始前就把i初始化了,没有把它作为for循环的一部分。一般情况下都是把循环控制变量的初始化放在for循环内部,但是当初始值是通过某个复杂过程得到的,而又不方便把这一过程放在for语句中时,可以把初始化放在循环之外。
图12 再次修改后的ForDemo运行结果
for循环还有另外一种变体就是将循环的条件表达式设为空,可以生成无限循环,即永远不会停止的循环。例如下面的代码就是Java程序创建无限循环的常用方法:
for( ; ; ){
//...
}
该循环将永远运行下去,尽管有许多程序设计任务,如操作系统命令处理器,需要无限循环,但是多数“无限循环”都是具有特殊终止条件的循环。
在Java中,for循环(或其他循环)可以没有循环体,因为空语句在语法上是有效的。没有循环体的循环十分有用。例如,下面的程序就是用了没有循环体的循环,计算从1至5的数之和:
public class ForDemo2{
public static void main(String[] args){
int sum = 0;
for(int i = 1; i <= 5; sum += i++);
System.out.println("1至5的和为:" + n);
}
}
编译并运行这个程序,控制台将显示如图13所示的信息。
전체 과정은, 문 요약에 더 루프를 수행하지 않습니다. 여기에서 우리는 반복적 인 표현에 특별한주의를 지불해야합니다 :
합계 + = I ++;
도 13 ForDemo2 운영 결과