• Java语言基础(6)


    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("努力学习!");	
    	}
      }
    }
  • 相关阅读:
    ERROR: Cannot set priority of registrydns process 33740
    Hbase和Phoenix部署-单机版
    ambari安装hdp时,新建的ambari-hdp-1.repo中baseurl无值
    centos7.2升级openssh到8.0
    kafka一个broker挂掉无法写入
    对cdh搭建过程错误总结及解决方法
    streamsets
    [Spark]Task not serializable
    [Kafka]How to Clean Topic data
    Postgresql Master/Slaver
  • 原文地址:https://www.cnblogs.com/KalosOwen/p/8410736.html
Copyright © 2020-2023  润新知