• Java语言基础(8)


    1 数组(二)

      1)for-each循环:增强的for循环,JDK1.5推出的,用来输出数组和集合中每一个元素的值。
        for(数据类型 变量 : 数组名){
          变量:临时保存元素的值
        }
        数据类型必须跟数组是同一个类型
        案例:Demo1

    public class Demo1 {
    //for-each:增强的for循环,主要用来输出数组中每一个
    //元素的值
    //格式:for(数据类型 变量 : 数组名){
    //	     	变量:临时保存数组中每一个元素值
    //	   }	
      public static void main(String[] args) {
    	int[] ary = new int[100];
    	for(int i=0;i<=ary.length-1;i++){
    	  ary[i] = i;	
    	}
    	for(int num : ary){
    	  System.out.println(num);	
    	}
      }
    }
    
    //Demo2: 创建一个double类型数组ary,包含200个
    //元素,分别把1~200之间的每一个整数依次给ary数组
    //中元素赋值
    //使用两种for循环,分别输出每一个元素的值。	
    public class Demo2 {
      public static void main(String[] args) {
    	double[] ary = new double[200];
    	for(int i=0;i<=ary.length-1;i++){
    	  ary[i] = i+1;	
    	}
    //for-each
    	for(double num : ary){
    	  System.out.println(num);	
    	}
    //for
    	System.out.println();
    	System.out.println();
    	System.out.println();
    	for(int i=0;i<=ary.length-1;i++){
    	  System.out.println(ary[i]);	
    	}
      }
    }

        总结:for-each循环结构简单,功能较为单一,仅仅只能取出元素的值。for循环操作数组元素,功能强大,但是结构复杂。
        案例:Demo3

    public class Demo3 {
    //创建一个int类型数组ary,包含了500个元素,分别把
    //1~500之间的每一个整数依次给ary数组元素赋值。
    //1 使用两种for循环输出每一个元素的值
    //2 累加求和:求出所有元素的累加之和
    //	sum = sum + ary[i]
    //3 求出元素的平均值:
      public static void main(String[] args) {
    	int[] ary = new int[500];
    //1 给元素赋值
    	for(int i=0;i<=ary.length-1;i++){
    	  ary[i] = i+1;	
    	}
    //2 for输出每一个元素值
    	for(int i=0;i<=ary.length-1;i++){
    	  System.out.println(ary[i]);	
    	}
    //3 for-each输出每一个元素值
    	for(int num : ary){
    	  System.out.println(num);	
    	}
    //4 累加求和:sum = sum + ary[i]
    	int sum = 0;
    	for(int i=0;i<=ary.length-1;i++){
    	  sum = sum + ary[i];	
    	}
    	System.out.println("元素累加之和:"+sum);
    //5 元素平均值
    	double avg = sum/500.0;
    	System.out.println("元素平均值:"+avg);
      }	
    }

      2)数组的初始化:在创建数组的同时直接给数组元素赋值,称为数组的初始化。数组的初始化分为两种,静态初始化和动态初始化。
      3)静态初始化:
        格式:
          数据类型[] 数组名 = { 元素值1,元素值2,元素值3...};
          eg:
            int[] ary = {1,2,3,4,5,6,7,8,9,10};
        在静态初始化中,不需要指定元素的个数,有多少个元素值,就有多少个元素。
        案例:Demo4

    public class Demo4 {
    //静态初始化:
    //格式:
    //数据类型[] 数组名={元素值1,元素值2,元素值3...};
      public static void main(String[] args) {
    	int[] ary = {1,2,3,4,5,6,7,8,9,10};
    	System.out.println(ary.length);
    	for(int num : ary){
    	  System.out.println(num);	
    	}
      }
    }
    
    public class Demo5 {
      public static void main(String[] args) {
    	double[] ary = {1.33,2.56,3.87,4.91,
    			5.66,6.99,7.43,8.11,9.99,
    			100.66};
    //使用两种for输出每一个元素的值
    	for(int i=1;i<=ary.length-1;i++){
    	  System.out.println(ary[i]);	
    	}
    	for(double num : ary){
    	  System.out.println(num);	
    	}
    //求出所有元素累加之和,可以考虑使用for-each求出
    //累加之和
    	double sum=0;
        for(double num : ary){
          sum = sum + num;	
        }
        System.out.println("元素累加之和:"+sum);
      }
    }

      4)动态初始化:
        格式:
          数据类型[] 数组名 = new 数据类型[]{ 元素值1,元素值2,元素值3...};
          eg:
            int[] ary = new int[]{1,2,3,4,5,6,7,8,9,10};
        动态初始化中,不要指定元素的个数,有多少个元素值就有多少个元素
        案例:Demo6

    public class Demo6 {
    //动态初始化:
    //格式:
    //数据类型[] 数组名 = 
    //	new 数据类型[]{元素值1,元素值2,元素值3...}
    //动态初始化的时候,不要指定元素的个数,有多少个
    //元素值,就有多少个元素
      public static void main(String[] args) {
    	int[] ary = new int[]{100,200,300,
    			400,500,600,10000,20000};
    	for(int num : ary){
    	  System.out.println(num);	
    	}
      }	
    }
    
    public class Demo7 {
      public static void main(String[] args) {
    	String[] ary =
    	  new String[]{"徐达","常遇春","李文忠",
    			"朱文正","冯胜","蓝玉","朱棣",
    			"戚继光","李如松","卢象升"};
    //使用两种for循环分别输出每一个元素的值
    	for(String str : ary){
    	  System.out.println(str);	
    	}
    	for(int i=0;i<=ary.length-1;i++){
    	  System.out.println(ary[i]);	
    	}
      }
    }

    2 switch语句

      多分支选择语句的一种,功能跟if-else-if很相似,但是由于结构较为复杂,在企业中没有if-else-if使用广泛,但是在嵌套的选择语句中,建议使用switch语句,结构比较清晰。
      1)格式:
        switch(整型表达式){
          case 整数值1:
            语句1
            break;
          case 整数值2:
            语句2
            break;
          case 整数值3:
            语句3
            break;
          ...
          default:
            语句n
        }
      2)语法规则:首先判断switch中整型表达式的值,整型表达式的值等于某一个分支case中的整数值,执行对应分支case中的语句,遇到break,退出整个switch语句;如果switch中整型表达式的值跟任何一个分支case中的整数值都不同,执行默认default中的语句n。
      3)switch中的整型表达式的结果的类型,可以是byte,short,int,char,在jdk1.7以及jdk1.8支持使用String。
      4)break:遇到break直接退出switch语句。如果执行完分支case中语句以后,没有遇到break,会继续执行下一个分支case...直到遇到break,退出switch语句。
      案例:Demo8

    import java.util.Scanner;
    
    public class Demo8 {
    //从控制台输入任意的一个整数,输出对应的操作
    //1 登录      2 查询     3 注册    4 修改    5 退出
    //其他值     输入错误
      public static void main(String[] args) {
    	Scanner sc = new Scanner(System.in);
        System.out.println("请输入操作(1~5):");
        int opt = sc.nextInt();
        switch(opt){
        case 1:
        	System.out.println("登录");
        	break;
        case 2:
        	System.out.println("查询");
        	break;
    //  3 注册    4 修改    5 退出
        case 3:
        	System.out.println("注册");
        	break;
        case 4:
        	System.out.println("修改");
        	break;
        case 5:
        	System.out.println("退出");
        	break;
        default:
        	System.out.println("输入错误");
        }
      }
    }
    
    import java.util.Scanner;
    public class Demo9 {
    //从控制台输入1~7数字,输出对应星期几
    //1 星期一      2 星期二       3 星期三        4 星期四
    //5 星期五      6 星期六       7 星期日
    //其他值  输入错误
      public static void main(String[] args) {
    	Scanner sc = new Scanner(System.in);
    	System.out.println("请输入一个整数:");
    	int num = sc.nextInt();
    	switch(num){
    	case 1:
    		System.out.println("星期一");
    		break;
    	case 2:
    		System.out.println("星期二");
    		break;
    	case 3:
    		System.out.println("星期三");
    		break;
    	case 4:
    		System.out.println("星期四");
    		break;
    	case 5:
    		System.out.println("星期五");
    		break;
    	case 6:
    		System.out.println("星期六");
    		break;
    	case 7:
    		System.out.println("星期日");
    		break;
    	default:
    		System.out.println("输入错误");
    	}
      }
    }
    
    import java.util.Scanner;
    
    public class Demo10 {
    //从控制台输入一个整数(0~5)作为分数,输出对应的
    //优秀,良好,及格,不及格以及输入错误
    //5			优秀
    //4			良好
    //3			及格
    //2,1,0		不及格
    //其他值		输入错误
      public static void main(String[] args) {
    	Scanner sc = new Scanner(System.in);
    	System.out.println("请输入分数:");
    	int score = sc.nextInt();
    	switch(score){
    	case 5:
    		System.out.println("优秀");
    		break;
    	case 4:
    		System.out.println("良好");
    		break;
    	case 3:
    		System.out.println("及格");
    		break;
    	case 2:	
    	case 1:
    	case 0:
    		System.out.println("不及格");
    		break;
    	default:
    		System.out.println("输入错误");
    	}
      }
    }

      综合案例:从控制台输入两个整数,分别作为年份和月份,根据年份和月份,输出本月有多少天
        大月(31天):1,3,5,7,8,10,12
        小月(30天):4,6,9,11
        2月:闰年 29天 非闰年 28天
        月份输入其他值,显示输入错误
        if(month==1||month==3||5,7,8,10,12){
          31天
        }else if(4,6,9,11){
          30天
        }else if(2){
          闰年29天 非闰年28天
        }
        switch(month){
          case 1: 31天 break
          case 3: 31天 break
          ...
          case 4: 30天 break
          case 6: 30天 break
          ...
          case 2:
            if(闰年){
              29天
            }else{
              28天
            }
              break
            }

    import java.util.Scanner;
    public class Demo11 {
      public static void main(String[] args) {
    	Scanner sc = new Scanner(System.in);
    	System.out.println("请输入年份:");
    	int year = sc.nextInt();
    	System.out.println("请输入月份:");
    	int month = sc.nextInt();
    //1 大月:1,3,5,7,8,10,12
    	if(month==1||month==3||month==5||
    			month==7||month==8||
    			month==10||month==12){
    	  System.out.println("31天");	
    //2 小月: 4,6,9,11	  
    	}else if(month==4||month==6||
    			month==9||month==11){
    	  System.out.println("30天");	
    //3 2月:闰年 29天,非闰年28天	  
    	}else if(month==2){
    	  if((year%4==0&&year%100!=0)||
    			  			year%400==0){
    		System.out.println("29天"); 
    	  }else{
    		System.out.println("28天");  
    	  }
    	}else{
    	  System.out.println("输入错误!");	
    	}
      }
    }
    
    import java.util.Scanner;
    public class Demo12 {
      public static void main(String[] args) {
    	Scanner sc = new Scanner(System.in);
        System.out.println("请输入年份:");
        int year = sc.nextInt();
        System.out.println("请输入月份:");
        int month = sc.nextInt();
        switch(month){
        case 1:
        case 3:
        case 5:
        case 7:
        case 8:
        case 10:
        case 12:
        	System.out.println("31天");
        	break;
        case 4:
        case 6:
        case 9:
        case 11:
        	System.out.println("30天");
        	break;
        case 2:
        	if((year%4==0&&year%100!=0)||
        			year%400==0){
        		System.out.println("29天");
        	}else{
        		System.out.println("28天");
        	}
        	break;
        default:
        	System.out.println("输入错误");
        }
      }
    }

    3 方法

      把具有一定业务功能的代码聚合在一起,可以被外界反复进行调用。
      1)格式:
        static 返回值类型 方法名(参数列表){
          方法体
        }
        static:下周详细讲,方便方法的调用。静态的。
        返回值类型:方法被调用的时候,最终返回结果的数据类型,如果该方法没有返回值,返回值类型的位置使用void。
        方法名:方法的标识。
        参数列表:0个或者多个参数,当方法被调用的时候,接收外界传入的数据
        方法体:是方法的具体实现。

        static void show(){
          System.out.println("努力学习");
          System.out.println("努力工作");
          System.out.println("努力挣钱");
        }
        main(){
          System.out.println("调用show()方法之前");
          show();
          System.out.println("调用show()方法之后");
        }
        当方法执行结束以后,返回到调用的位置继续往下执行。
      2)在main方法中,调用方法
        main(){
          方法名(参数);
        }
        main()是程序的入口,程序都是从main方法开始逐行的往下执行,一直执行到末尾为止。
        案例:Demo13

    public class Demo13 {
    //方法:把具有一定业务功能的代码聚合在一起,可以被
    //外界反复调用。
    //格式:
    //static 返回值类型 方法名(参数列表){
    //	方法体
    //}	
    //static :静态的,下周讲,方便方法的调用
    //返回值类型:方法被调用以后,最终返回的结果的数据
    //类型,如果该方法没有返回值,在返回值类型的位置
    //使用void。
    //方法名:方法的标识
    //参数列表:0个或者多个参数,当方法被调用的时候,
    //接收外界传入的数据。
    //方法体:方法的具体实现。
    //main()方法是程序的入口,都是从main()方法开始
    //逐行的往下执行,一直执行到末尾为止。
    //方法执行结束以后,返回到调用的位置继续往下执行。	
    }
  • 相关阅读:
    致此时的自己
    感悟
    Do what you love VS Love what you do
    感悟
    JavaScript中关于date对象的一些方法
    悟透JavaScript——学习心得
    JavaScript中关于string对象的一些方法
    JavaScript中的简单语句
    w3school CSS基础教程
    SMACSS——Scalable & Modular Architecture for CSS
  • 原文地址:https://www.cnblogs.com/KalosOwen/p/8410808.html
Copyright © 2020-2023  润新知