Days05循环结构
循环
在某一特定条件下可以一直执行的操作,直到条件不满足为止。
java中的循环:
while,do while, for以及后期会学到的foreach
while
字面意思是“当……的时候”,条件满足一直执行,条件不满足就不执行,如果条件刚开始就不满足,就一次也不执行。
语法:
while(条件){
//循环体
}
执行流程:
1. 先对条件进行判断,结果为true,则执行循环体的代码
2. 本次循环执行完毕后,再次进行循环条件的判断,结果为true,则继续执行循环体的代码
3. 直至条件为false则退出,执行while循环以外的代码
4. 如果刚开始条件就为false,则一次也不执行
class While01
{
public static void main(String[] args)
{
int num = 1; //num=1的时候,下面的循环执行10次,手动将num改为11的时候,下面的循环一次也不执行,直接“over”
while(num <= 10){
System.out.println("Hello World!" + num);
num++;
}
System.out.println("over");
}
}
class While02
{
public static void main(String[] args)
{
int num = 1;
while(num <= 50){ // 打印50份试卷
System.out.println("打印第" + num++ + "份试卷");
}
System.out.println("over");
}
}
class While03
{
public static void main(String[] args)
{
int i = 1, sum = 0;
while(i <= 100){ // 计算1-100所有的整数之和
sum += i++; // sum = sum + i++;
}
System.out.println("total : " + sum);
}
}
class While04
{
public static void main(String[] args)
{
int sum = 0, i =1;
while(i <= 100){ // 循环1- 100中的所有数
if(i % 2 == 0){ // 只是将所有的偶数进行加和操作,可以自行扩展,比如奇数之和,能被3整除,被5整除的数之和
sum += i;
}
i++;
}
System.out.println("Total:\t" + sum);
}
}
class While05
{
public static void main(String[] args)
{
int sum = 0, i = 0;
while(i <= 100){ // 相对于上面一个实现效率更高一些,因为这里只需要循环50次
sum += i;
i+=2;
}
System.out.println("total:\t" + sum);
}
}
doWhile
字面意思是先do, 再while循环,至少做一次,然后再看条件是否满足再决定要不要进行下一步,类似与“彩排”
如果下一次条件满足,继续循环,如果不满足了,就退出循环
与while不同的点在于,dowhile至少执行一次,哪怕第一次条件都不满足,它以及执行了一次,后面条件满足继续循环,不满足,则至少已经执行了一次了
语法结构:
do{
// 循环体
}while(条件);
import java.util.Scanner;
class DoWhile01
{
public static void main(String[] args)
{
Scanner input = new Scanner(System.in);
String answer = "";
do{
System.out.println("唱");
System.out.println("跳");
System.out.println("Rap");
System.out.println("打篮球");
System.out.println("彩排怎么样?");
answer = input.next();
}while(!"yes".equals(answer));
System.out.println("彩排结束");
}
}
for
基本语法:
for(表达式1;表达式2; 表达式3){
// 循环体
}
其中表达式1用于变量的初始化
表达式2用于循环条件的判断
表达式3用与循环变量的更新
循环体是要被重复执行的代码块
注意for循环结构中的三个表达式均可以省略,但是两个分号不能省略。但是一般写死循环是没有意义的。所以我们可以在for循环的前面去声明变量,在循环体里面进行条件的判断,在循环结束后再去进行循环变量的更新
class For01
{
public static void main(String[] args)
{
int sum = 50;
for(int i = 0; i < sum; i++){
System.out.println("打印第" + (i + 1) + "份试卷");
}
System.out.println("试卷打印完毕!");
}
}
class For02
{
public static void main(String[] args)
{
int num = 50;
for(int i = 0; i < num; ){
System.out.println("打印第" + ++i + "份试卷");
}
System.out.println("试卷打印完毕!");
}
}
class For03
{
public static void main(String[] args)
{
int num = 50;
for(int i = num; i > 0; i--){
System.out.println("打印第" + i + "份试卷");
}
System.out.println("试卷打印完毕!");
}
}
class For04
{
public static void main(String[] args)
{
int num = 50;
int sum = 0;
for(int i = 0; i < num;i++){
if(i <= 10){
sum += i;
}
}
System.out.println("total:\t" + sum);
}
}
class For05
{
public static void main(String[] args)
{
int i = 0, sum = 50;
for(; ;){
if(i < sum){
System.out.println("Hello World!" + i);
}
i++;
}
}
}
class TestInteger
{
public static void main(String[] args)
{
int i = Integer.MAX_VALUE;
System.out.println("Max:\t" + i);
i += 1;
System.out.println("i:\t" + i);
}
}