zoukankan      html  css  js  c++  java
  • Java语言基础(7)

    1 for循环

      案例:Demo1
        1+1/2+1/3+1/4+1/5+1/6+...+1/100 = ?
        1/1+1/2+1/3+1/4+1/5+1/6+...+1/100 = ?
        分子都是1,分母是1~100
        首先定义一个double类型变量sum=0,保存累加之和
        第1次:sum = sum + 1/1
        第2次:sum = sum + 1/2
        第3次:sum = sum + 1/3
        第4次:sum = sum + 1/4
        第5次:sum = sum + 1/5
        ...
        第100次:sum = sum + 1/100
        定义变量double i = 0,i的取值1~100,i作为分母
        公式:sum = sum + 1/i
        for(double i=1;i<=100;i++){
          sum = sum + 1/i;
        }
      案例:Demo1
        1/1+1/2+1/3+1/4+1/5+1/6+...+1/100 = ?

    public class Demo1 {
      public static void main(String[] args) {
    	double sum = 0;  
    	for(double i=1;i<=100;i++){
    	  sum = sum + 1/i;	
    	}
    	System.out.println(sum);
      }
    }
    
    public class Demo2 {
    //1+1/3+1/5+1/7+1/9+...1/99 = ? 
    //1/1+1/3+1/5+1/7+1/9+...1/99 = ?
    //规律:分子都是1,分母1~99之间的奇数
      public static void main(String[] args) {
    //1 求出分母
    	double sum = 0;
    	for(double i=1;i<=99;i=i+2){
    //2 累加求和:sum = sum+1/i
    	  sum = sum + 1/i; 
    	}
    	System.out.println("累加之和:"+sum);
      }
    }
    
    //Demo3:
    //1+1/2+1/4+1/6+1/8+1/10+...+1/200 = ?
    public class Demo3 {
    //1+(1/2+1/4+1/6+1/8+1/10+...+1/200) = ?
      public static void main(String[] args) {
    	double sum=1;
    	for(double i=2;i<=200;i=i+2){
    	  sum = sum + 1/i;	
    	}
    	System.out.println("累加之和:"+sum);
      }
    }

    2 break和continue
      1)break:直接退出循环语句。
      2)continue:结束本次循环,继续开始下次循环。
      案例:Demo4

    public class Demo4 {
      public static void main(String[] args) {
    	for(int i=1;i<=30;i++){
    	  if(i==10){
    		break;//直接退出循环  
    	  }	
    	  System.out.println(i);	
    	}
      }
    }
    
    public class Demo5 {
      public static void main(String[] args) {
    	for(int i=1;i<=30;i++){
    	  if(i==10){
    		continue;//结束本次循环,继续开始下次循环  
    	  }	
    	  System.out.println(i);	
    	}
      }
    }
    
    public class Demo6 {
    //使用for循环,求出1~300之间所有的奇数累加之和,
    //如果累加之和一旦超过5000,直接退出for循环,并
    //输出当前的累加之和。
      public static void main(String[] args) {
    	int sum = 0;
    	for(int i=1;i<=300;i=i+2){	
    	  sum = sum + i;	
    	  if(sum>5000){
    		break;  
    	  }
    	}
    	System.out.println(sum);
      }	
    }
    
    //Demo7: 使用for循环,求出1~100之间所有的奇数
    //(2种写法)  
    public class Demo7 {
      public static void main(String[] args) {
    //方法1:
    	for(int i=1;i<=100;i++){
    	  if(i%2!=0){
    		System.out.println(i);  
    	  }	
    	}
    //在for循环中定义的变量i,只在for循环中有效,在
    //for循环外面无效
    //	System.out.println(i);
    	System.out.println();
    //方法2:	
    	for(int i=1;i<=100;i=i+2){
    	  System.out.println(i);	
    	}
      }
    }

    3 循环嵌套
      1)输出内容,不换行
        System.out.print("要显示的内容");
        案例:Demo8

    public class Demo8 {
      public static void main(String[] args) {
    	System.out.print("李斯,");
    	System.out.print("霍光,");
    	System.out.print("房玄龄,杜如晦,");
    	System.out.print("李善长,张居正。");
    	System.out.println();//换行
    	System.out.println("白起");
    	System.out.println("卫青,霍去病");
    	System.out.println("李靖,苏定方");
    	System.out.println("徐达,蓝玉");
      }
    }
    
    public class Demo9 {
      public static void main(String[] args) {
    //*****
    	System.out.println("*****");  
    	for(int i=1;i<=5;i++){
    	  System.out.print("*");
    	}
      }
    }
    
    public class Demo10 {
    //***
    //***
    //***
      public static void main(String[] args) {
    	for(int i=1;i<=6;i++){//行数
    	  for(int k=1;k<=10;k++){//*列数
    		System.out.print("*");  
    	  }	
    	  System.out.println();
    	}	
      }
    }
    
    //Demo11:从控制台输入两个整数,分别作为打印长方形*的
    //行数row和列数col
    //比如:row:2   col:3	
    //***
    //***		
    //外层循环:i=1  i<=3(true)
    //内层循环第1次:k=1  k<=3(true) * k++(k:2)
    //       第2次:	   k<=3(true) * k++(k:3)
    //		  第3次:         k<=3(true) * k++(k:4)
    //	          第4次:         k<=3(false) 退出内层循环
    //换行	
    //								i++(i:2)
    //外层循环第2次:  i<=3(true)
    //内层循环:  *** 
    //换行	
    //								i++(i:3)
    //外层循环第3次:  i<=3(true)
    //内层循环: ***               
    //换行	
    //								i++(i:4)
    //外层循环第4次:  i<=3(false)  退出整个循环
    import java.util.Scanner;
    public class Demo11 {
      public static void main(String[] args) {
    	Scanner sc = new Scanner(System.in);
    	System.out.println("请输入行数:");
    	int row = sc.nextInt();
    	System.out.println("请输入列数:");
    	int col = sc.nextInt();
    	for(int i=1;i<=row;i++){//行数
    	  for(int k=1;k<=col;k++){//列数
    		System.out.print("*");
    	  }	
    	  System.out.println();
    	}
      }
    }
    
    public class Demo12 {
    /*
    *
    **
    ***
    ****
    *****
    */
      public static void main(String[] args) {
    	for(int i=1;i<=10;i++){//行数
    	  for(int k=1;k<=i;k++){
    		System.out.print("*");  
    	  }	
    	  System.out.println();
    	}
      }	
    }
    
    //Demo13:从控制台输入一个整数,作为打印直角三角形
    //*的行数row,打印直角三角形*
    //row:3
    //*
    //**
    //***  
    //每行*的个数,跟当前的行数一致(i)。
    //内层循环每次打印i个*,内层循环执行i次
    //控制内层循环执行次数的k的取值:1~i
    import java.util.Scanner;
    public class Demo13 {
      public static void main(String[] args) {
    	Scanner sc = new Scanner(System.in);
    	System.out.println("请输入行数:");
    	int row = sc.nextInt();
    	for(int i=1;i<=row;i++){
    	  for(int k=1;k<=i;k++){
    		System.out.print("*");  
    	  }	
    	  System.out.println();
    	}
      }
    }
    
    public class Demo14 {
    //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 ...				9*9=81	
      public static void main(String[] args) {
    	for(int i=1;i<=9;i++){
    	  for(int k=1;k<=i;k++){
    		System.out.print(k+"*"+i+"="
    				+i*k+"  ");  
    	  }	
    	  System.out.println();
    	}
      }	
    }

      2)循环嵌套:在一个循环语句的内部,又包含了一个循环语句。外层循环执行一次,内层循环执行所有。
        for(int i=1;i<=3;i++){
          for(int k=1;k<=3;k++){
            System.out.print("*");
          }
          System.out.println();
        }


    4 数组

      把相同类型的数据聚合在一起,使用数组来保存相同类型的多个数据。
      1)创建数组格式:
        数据类型[] 数组名 = new 数据类型[数据个数];
        或者
        数据类型 数组名[] = new 数据类型[数据个数];
        eg:int[] ary = new int[5];
      2)元素:数组中使用元素来保存数据,元素就相当于变量
      3)下标:用来标识数组中的每一个元素,下标的取值从0开始,最后一个元素的下标值(元素总个数-1)
        数组名[下标值] ---> 元素
        eg:ary[0] = 100;    //把100赋值给ary中第1个元素
          ary[1] = 200;
          ary[2] = 300;
          ary[3] = 400;
          ary[4] = 500;
        案例:Demo15

    public class Demo15 {
      public static void main(String[] args) {
    	int[] ary = new int[6];
    	ary[0] = 100;
    //分别把200,300,400,500,600依次的给其他元素赋值
    	ary[1] = 200;
    	ary[2] = 300;
    	ary[3] = 400;
    	ary[4] = 500;
    	ary[5] = 600;
    	System.out.println(ary[0]);
    	System.out.println(ary[1]);
    	System.out.println(ary[2]);
    	System.out.println(ary[3]);
    	System.out.println(ary[4]);
    	System.out.println(ary[5]);
    //	ary[6] = 1000;
    //报错了,ary数组中只能保存6个元素,元素下标的取值
    //0~5,ary[6]中下标的取值超过范围。	
      }
    }
    
    public class Demo16 {
      public static void main(String[] args) {
    	double ary[] = new double[5];
    	ary[0] = 1.6;
    	ary[1] = 2.3;
    	ary[2] = 9.66;
    	ary[3] = 10.55;
    	ary[4] = 100.1;
    //输出每一个元素的值	
    	System.out.println(ary[0]);
    	System.out.println(ary[1]);
    	System.out.println(ary[2]);
    	System.out.println(ary[3]);
    	System.out.println(ary[4]);
      }
    }
    
    public class Demo17 {
      public static void main(String[] args) {
    	String[] ary = new String[6];
    	ary[0] = "徐志摩";
    	ary[1] = "梁思成";
    	ary[2] = "林徽因";
    	ary[3] = "林语堂";
    	ary[4] = "钱钟书";
    	ary[5] = "冰心";
    	System.out.println(ary[0]);
    	System.out.println(ary[1]);
    	System.out.println(ary[2]);
    	System.out.println(ary[3]);
    	System.out.println(ary[4]);
    	System.out.println(ary[5]);
      }
    }

      4)元素的默认值:系统默认给元素赋的值
        案例:Demo18

    public class Demo18 {
      public static void main(String[] args) {
    //整型数组元素的默认值:0
    	int[] ary = new int[100];
    	System.out.println(ary[1]);//0
    	long[] ary2 = new long[100];
    	System.out.println(ary2[99]);//0
    //浮点类型数组元素的默认值:0.0
    	double[] ary3 = new double[500];
    	System.out.println(ary3[10]);//0.0
    //布尔类型数组元素的默认值:false
    	boolean[] ary4 = new boolean[100];
    	System.out.println(ary4[0]);//false
    //引用类型数组元素的默认值:null
    	String[] ary5 = new String[20];
    	System.out.println(ary5[1]);
    //null:用来表示引用类型变量没有值,为空。
      }
    }

        整数类型数组元素的默认值是0
        浮点类型数组元素的默认值是0.0
        布尔类型数组元素的默认值是false
        引用类型数组元素的默认值是null
        null:当前引用类型的变量(元素)没有值,为空。
      5)使用for循环来操作数组中的元素
        分析:数组中通过下标来区分开每一个元素,下标的取值从0~元素总个数-1。通过控制循环次数变量i的取值,来指向数组中的每一个元素,i的取值0~元素总个数-1,作为元素的下标值。
        for(int i=0;i<=元素总个数-1;i++){
          数组名[i] ---> 元素
        }
        案例:Demo19

    public class Demo19 {
    //使用for循环来操作数组中的元素
    //控制循环次数变量i的取值,作为数组元素的下标值
    //for(int i=0;i<=元素总个数-1;i++){
    //	数组名[i] -----> 元素
    //}	
      public static void main(String[] args) {
    //创建一个int类型数组ary,包含100个元素,分别把
    //0~99之间的每一个整数赋值给ary数组中的每一个元素
    //最后输出每一个元素的值
    	int[] ary = new int[100];
    	for(int i=0;i<=99;i++){
    	  ary[i] = i;
    	  System.out.println(ary[i]);
    	}
    
    	
    /*	
    	for(int i=0;i<=99;i++){
    	  System.out.println(ary[i]);	
    	}
    	*/
      }	
    }
    
    public class Demo20 {
    //Demo20:创建一个int类型数组ary,包含了200个元素,
    //把0~199之间每一个整数给ary数组元素依次赋值,输出
    //每一个元素的值。
      public static void main(String[] args) {
    	int[] ary = new int[200];
    	for(int i=0;i<=ary.length-1;i++){
    	  ary[i] = i;
    	  System.out.println(ary[i]);
    	}
      }	
    }
    
    public class Demo21 {
    //创建一个int类型数组ary,包含100个元素,把1~100
    //之间的每一个整数给ary数组中元素依次赋值,最后输出
    //每一个元素的值
    //i     0~99
    //i+1   1~100
      public static void main(String[] args) {
    	int[] ary = new int[100];
    	for(int i=0;i<=99;i++){
    	  ary[i] = i+1;
    	  System.out.println(ary[i]);
    	}
      }  	
    }
    
    public class Demo22 {
    //创建一个int类型数组ary,包含200个元素,把1~200之间
    //每一个整数给ary数组中元素依次赋值
    //1 输出每一个元素的值
    //2 求出所有元素的累加之和
    //	sum = sum + i
    //	sum = sum + ary[i]
      public static void main(String[] args) {
        int[] ary = new int[200];
        for(int i=0;i<=199;i++){
          ary[i] = i+1;	
          System.out.println(ary[i]);
        }
    //累加求和: sum = sum + ary[i]
        int sum = 0;
        for(int i=0;i<=199;i++){
          sum = sum + ary[i];	
        }
        System.out.println("元素累加之和:"+sum);
      }	
    }

      6)数组名.length:返回是数组中元素的总个数
        案例:Demo23

    public class Demo23 {
      public static void main(String[] args) {
    	int[] ary = new int[200];
    	System.out.println(ary.length);//200
      }
    }

        for(int i=0;i<=数组名.length-1;i++){
          数组名[i] ---> 元素
        }

  • 相关阅读:
    CodeForces 219D Choosing Capital for Treeland (树形DP)
    POJ 3162 Walking Race (树的直径,单调队列)
    POJ 2152 Fire (树形DP,经典)
    POJ 1741 Tree (树的分治,树的重心)
    POJ 1655 Balancing Act (树的重心,常规)
    HDU 2196 Computer (树形DP)
    HDU 1520 Anniversary party (树形DP,入门)
    寒门子弟
    JQuery选择器(转)
    (四)Web应用开发---系统架构图
  • 原文地址:https://www.cnblogs.com/KalosOwen/p/8410774.html
Copyright © 2011-2022 走看看