1 while循环

  案例:Demo1

    1+2+3+4+5+...+100 = ?
    首先定义一个变量sum,用来保存累加之和,int sum=0
    第1次:sum = sum + 1
    第2次: sum = sum + 2
    第3次:sum = sum + 3
    第4次:sum = sum + 4
    ...
    第100次:sum = sum + 100
    公式: sum = sum + i(i的取值范围1~100)
      int i=1;
      while(i<=100){
        sum = sum + i;
        i++;
      }
  案例:Demo1,求出1~100之间所有的整数累加之和

public class Demo1 {
  public static void main(String[] args) {
//1 求出1~100之间的每一个整数
	int i=1,sum=0;
	while(i<=100){
//2 累加求和的公式:sum = sum + i
	  sum = sum + i;
	  i++;	
	}
	System.out.println("累加之和:"+sum);  
  }
}

//Demo2:求出100~200之间所有整数累加之和
public class Demo2 {
  public static void main(String[] args) {
	int i=100,sum=0;
    while(i<=200){
      sum=sum+i;
      i++;
    }
    System.out.println("累加之和:"+sum);
  }
}

public class Demo3 {
//Demo3:求出100~500之间所有的奇数累加之和
  public static void main(String[] args) {
//1 100~500之间每一个整数
	int i=100,sum=0;
	while(i<=500){
//2 过滤出其中所有的奇数
	  if(i%2!=0){//奇数
//3 累加求和:sum = sum + i
		sum = sum + i;  
	  }	  
	  i++;	
	}
	System.out.println(sum);
  }
}

//Demo4: 使用while循环,分别求出1~200之间所有的
//奇数累加之和,和所有的偶数累加之和	
public class Demo4 {
  public static void main(String[] args) {
//1 求出1~200之间的每一个整数
	int i=1,sum1=0,sum2=0;
//sum1保存奇数累加之和,sum2保存偶数累加之和	
	while(i<=200){
//2 分别过滤出其中的奇数和偶数
	  if(i%2!=0){//奇数
//3 累加之和:sum=sum+i
		sum1 = sum1+i;  
	  }else{//偶数
		sum2 = sum2+i;  
	  }	
	  i++;	
	}
	System.out.println("奇数累加之和:"+sum1);
	System.out.println("偶数累加之和:"+sum2);
  }
}

2 do-while循环
  1)格式:
    do{
      循环体语句
    }while(表达式);
  2)语法规则:首先执行循环体语句一次,然后判断表达式,如果表达式为true,再执行一次循环体语句,然后再来判断表达式,如果表达式还为true,继续再执行循环体语句一次...直到表达式为false,退出do-while循环。
  3)do-while循环特点:不管循环条件(表达式)true还是false,循环体语句至少执行一次。
    案例:Demo5

public class Demo5 {
//do-while循环:
//1 格式: do{
//			循环体语句
//		 }while(表达式);
//2 语法规则:首先执行一次循环体语句,然后判断表达
//式,如果表达式为true,执行一次循环体语句,然后
//再来判断表达式,如果表达式还为true,继续再执行
//一次循环体语句...直到表达式为false,退出do-while
//循环
//使用do-while打印10行天气很好
  public static void main(String[] args) {
	int i=1;
	do{
	  System.out.println("天气很好");	
	  i++;	
	}while(i<=10);
  }
}

//Demo6:使用do-while循环,输出100~200之间的
//每一个整数  
public class Demo6 {
  public static void main(String[] args) {
	int i=100;
	do{
	  System.out.println(i);	
	  i++;	
	}while(i<=200);
  }
}

public class Demo7 {
//使用do-while,求出1~200之间所有奇数和偶数,并
//输出
  public static void main(String[] args) {
	int i=1;
	do{
	  if(i%2!=0){//奇数
		System.out.println(i+"是奇数");  
	  }else{//偶数
		System.out.println(i+"是偶数");  
	  }	
	  i++;	
	}while(i<=200);
  }
}

public class Demo8 {
//do-while的特点:不管循环的条件true还是false,
//循环体语句至少执行一次。
  public static void main(String[] args) {
	do{
	  System.out.println("至少执行一次!");	
	}while(false);
  }	
}

  4)do-while死循环,循环的条件永远都为true,循环语句会被一直执行。
    do{
      循环体语句
    }while(true);
    案例:Demo9

public class Demo9 {
  public static void main(String[] args) {
	do{
	  System.out.println("天长地久有时尽," +
	  		"此恨绵绵无绝期。");
	}while(1>0);
  }
}

public class Demo10 {
//使用do-while,求出200~500之间的所有奇数(2种方法)
  public static void main(String[] args) {
//方法1
	int i=200;
	do{
	  if(i%2!=0){
		System.out.println(i+"是奇数");  
	  } 
	  i++;	
	}while(i<=500);
//方法2
//201,203,205...499
//定义控制循环次数的变量k,k的初值201,条件k<500,
//增量k=k+2	
	System.out.println();//换行
	System.out.println();
	System.out.println();
	int k=201;
	do{
	  System.out.println(k);	
	  k=k+2;	
	}while(k<=500);
  }
}

public class Demo11 {
//私用do-while循环,求出100~200之间所有整数累加
//之和
  public static void main(String[] args) {
	int i=100,sum=0;
	do{
	  sum = sum + i;	
	  i++;	
	}while(i<=200);
	System.out.println("累加之和:"+sum);
  }	
}

public class Demo12 {
//使用do-while,求出1~500之间所有偶数累加之和
//(2种方法)	
  public static void main(String[] args) {
//方法1
	int i=1,sum=0;
	do{
	  if(i%2==0){//偶数
		sum = sum + i; 
	  }	
	  i++;	
	}while(i<=500);
	System.out.println("偶数累加之和:"+sum);
//方法2
//2,4,6,8,10...500
//控制循环次数变量k的初值2,条件k<=500,增量
//k=k+2	
	int k=2,sum2=0;
	do{
	  sum2 = sum2 + k;	
	  k=k+2;	
	}while(k<=500);
	System.out.println("偶数累加之和:"+sum2);
  }
}

3 for循环

  企业中使用最为广泛的循环语句
  1)格式:

    for(表达式1;表达式2;表达式3){
      循环体语句
    }
    eg:
      for(int i=1;i<=5;i++){
        System.out.println("今天");
      }
      表达式1 表达式2 循环体语句 表达式3
      第1次循环: i=1 i<=5(true) 今天 i++(i:2)
      第2次循环: i<=5(true) 今天 i++(i:3)
      第3次循环: i<=5(true) 今天 i++(i:4)
      第4次循环: i<=5(true) 今天 i++(i:5)
      第5次循环: i<=5(true) 今天 i++(i:6)
      第6次循环: i<=5(false) 退出for循环
  2)语法规则:
    第1次循环:
    表达式1-->表达式2-->循环体语句-->表达式3
    从第2次循环开始:
    表达式2-->循环体语句-->表达式3
    只有当表达式2为false,退出for循环
    案例:Demo13

public class Demo13 {
//for循环:
//1 格式:for(表达式1;表达式2;表达式3){
//			循环体语句	
//		 }	
//2 语法规则:
//第1次循环:
//表达式1-->表达式2-->循环体语句-->表达式3
//从第2次循环开始:
//		     表达式2-->循环体语句-->表达式3
//只要表达式2为true,执行循环体语句,一旦表达式2
//为false,直接退出for循环。
//使用for输出10行******
  public static void main(String[] args) {
	for(int i=1;i<=10;i++){
	  System.out.println("******");
	}
  }
}

//Demo14:使用for循环,输出200~1000之间每一个
//整数  
public class Demo14 {
  public static void main(String[] args) {
	for(int i=200;i<=1000;i++){
	  System.out.println(i);	
	}
  }  
}

//Demo15:使用for循环,求出1~200之间所有奇数和
//偶数并输出。
public class Demo15 {
  public static void main(String[] args) {
	for(int i=1;i<=200;i++){
	  if(i%2!=0){//奇数
		System.out.println(i+"是奇数");  
	  }else{//i%2==0 偶数
		System.out.println(i+"是偶数");  
	  }	
	}
  }
}

//Demo16:使用for循环,求出公元1000~2017年之间
//闰年和非闰年	
public class Demo16 {
  public static void main(String[] args) {
	for(int i=1000;i<=2017;i++){
	  if((i%4==0&&i%100!=0)||i%400==0){
		System.out.println(i+"是闰年");  
	  }else{
		System.out.println(i+"不是闰年");  
	  }
	}
  }
}

import java.util.Scanner;
public class Demo17 {
  public static void main(String[] args) {
//1 创建Scanner对象
	Scanner sc = new Scanner(System.in);  
//2 定义变量year,接收输入的整数
	System.out.println("请输入一个整数:");
	int year = sc.nextInt();
//3 判断year是否大于等于1
	if(year>=1){
//4 求出1~year之间所有的整数
      for(int i=1;i<=year;i++){
 //5  求出1~year之间闰年和非闰年	  
    	if((i%4==0&&i%100!=0)||i%400==0){
    	  System.out.println(i+"是闰年");	
    	}else{
    	  System.out.println(i+"不是闰年"); 	
    	}  
      }		   	
	}else{//year<1
	  System.out.println("输入错误");	
	}
  
  }
//从控制台输入一个整数作为年份year,求出1~year之间
//所有的闰年和非闰年
//要求:如果输入值year大于等于1,直接求出1~year
//之间所有闰年和非闰年,反之如果输入值year小于1,
//直接输出输入错误。
//分析:
//if(year>=1){
//	for(int i=1;i<=year;i++){
//	     闰年和非闰年
//  }
//}else{//year<1
//	输入错误
//}	
}

public class Demo18 {
//使用for循环,求出1~200之间所有的奇数累加之和和
//所有的偶数累加之和。
  public static void main(String[] args) {
	int sum1=0,sum2=0;
//sum1保存奇数累加之和,sum2保存偶数累加之和
	for(int i=1;i<=200;i++){
	  if(i%2!=0){//奇数
		sum1 = sum1 + i;  
	  }else{//偶数
		sum2 = sum2 + i;  
	  }	
	}
	System.out.println("奇数累加之和:"+sum1);
	System.out.println("偶数累加之和:"+sum2);
  }	
}

import java.util.Scanner;
public class Demo19 {
  public static void main(String[] args) {
	Scanner sc = new Scanner(System.in);
	System.out.println("请输入任意的一个整数:");
	int num = sc.nextInt();
	if(num>=1){
	  int sum=0;
	  for(int i=1;i<=num;i=i+2){
		sum = sum + i;  
	  }
	  System.out.println("累加之和:"+sum);
/*		
	  int sum = 0;	
	  for(int i=1;i<=num;i++){
		if(i%2!=0){//奇数
		  sum = sum + i;	
		}  
	  }	
	  System.out.println("累加之和:"+sum);
*/	  
	}else{//num<1
	  System.out.println("输入错误");	
	}
  }
//从控制台输入任意的一个整数num,求出1~num之间所有
//奇数的累加之和。
//要求:如果输入num>=1,求出1~num之间累加之和;反之
//如果输入num<1,输入错误
//if(num>=1){
//	for(int i=1;i<=num;i++){
//	  if(i%2!=0){
//	        累加之和
//	  }
//	}
//}else{ //num<1
//	输入错误
//}
}

  3)for的死循环:表达式2永远都为true,循环体语句会被一直执行。
    for(;表达式2;){
      循环体语句
    }
    for(;;){//表达式2默认为true
      循环体语句
    }
    案例:Demo20

public class Demo20 {
  public static void main(String[] args) {
	for(;;){
	  System.out.println("努力学习!");	
	}
  }
}