黑马程序员---java基础之day4-5

------- android培训java培训、期待与您交流! ----------

第四天:

       For循环嵌套:

              class  ForForDemo

{

       public static voidmain(String[] args)

       {

              //大圈套小圈思想。

              /*

              for(intx=0; x<3; x++)

              {

                     for(inty=0; y<4; y++)

                     {

                            System.out.println("ok");

                     }

              }

              */

 

              /*

             

              *****

              *****

              *****

              *****

             

              */

              for(int x=0;x<4; x++)//外循环控制的是行数

              {

                     for(inty=0; y<5; y++)//内循环控制的是每一行的个数

                     {

                            System.out.print("*");

                     }

                     System.out.println();

              }

             

       }

}

             

              class ForFor99

{

       public static voidmain(String[] args)

       {

 

              /*

              九九乘法表

              1*1=1                         

              1*2=22*2=4

              1*3=32*3=6 3*3=9

             

              */

 

              for (int x=1;x<=9 ;x++ )

              {

                     for (inty=1; y<=x ;y++ )

                     {

                            System.out.print(y+"*"+x+"="+y*x+"\t");

                     }

                     System.out.println();

              }

 

 

              /*

              \n:回车:

              \t:制表符。

              \b:退格。

              \r:按下回车键。

 

              windows系统中回车符其实是由两个符号组成的 \r\n.

              linux中回车符是 \n.

 

                    

              System.out.println("\\helloworld\\");

              */

       }

}

 

class ForForTest

{

       public static voidmain(String[] args)

       {

 

              /*

             

              *****

              ****

              ***

              **

              *

              */

              /*

              intz = 5;

              for(int x = 1; x<=5 ;x++ )//1-5 1-4 1-3//1-5 2-5 3-5

              {

                     for(int y=1; y<=z ; y++ )

                     {

                            System.out.print("*");

                     }

                     System.out.println();

                     z--;

              }

              */

              /*

 

              intz = 1;

              for(int x = 1; x<=5 ;x++ )//1-5 1-4 1-3//1-5 2-5 3-5

              {

                     for(int y=z; y<=5 ; y++ )

                     {

                            System.out.print("$");

                     }

                     System.out.println();

                     z++;

              }

              */

              for(int x=1;x<=5; x++)

              {

                     for(inty=x; y<=5; y++)

                     {

                            System.out.print("*");

                     }

                     System.out.println();

              }

              /*

              *

              **

              ***

              ****

              *****

              */

              System.out.println("----------");

              for (int x=1;x<=5 ;x++ )

              {

                     for (inty=1;y<=x ;y++ )

                     {

                            System.out.print("*");

                     }

                     System.out.println();

              }

              System.out.println("----------");

              /*

 

              54321

              5432

              543

              54

              5

              */

              for (int x=1;x<=5; x++ )

              {

                     for (inty=5; y>=x ;y-- )

                     {

                            System.out.print(y);

                     }

                     System.out.println();

              }

 

 

              System.out.println("----------");

              /*

              1

              22

              333

              4444

              55555

             

              */

 

              for (int x=1;x<=5 ; x++)

              {

                     for (inty=1;y<=x ;y++ )

                     {

                            System.out.print(x);

                     }

                     System.out.println();

              }

       }

}

       Break和Continue语句

class BreakContinueDemo

{

       public static voidmain(String[] args)

       {

 

              /*

              break:跳出。

              break作用的范围:要么是switch语句,要么是循环语句。

              记住:当break语句单独存在时,下面不要定义其他语句,因为执行不到。

                     break跳出所在的当前循环。

                     如果出现了循环嵌套,break想要跳出指定的循环,可以通过标号来完成。

 

             

              for(int x=0; x<3; x++)

              {

                     if(x==1)

                            break;

                     System.out.println("x="+x);

              }

             

 

              xiaoqiang:for(int x=0; x<3 ;x++ )

              {

                     wangcai:for(int y=0; y<4 ; y++)

                     {

                            System.out.println("x="+x);

                            breakxiaoqiang;

                     }

                    

              }*/

 

              /*

              continue:继续。

              作用的范围:循环结构。

              continue:结束本次循环,继续下次循环。

              如果continue单独存在时,下面不要有任何语句,因为执行不到。

 

 

 

             

 

              for(int x=0; x<11 ;x++ )

              {

                     if(x%2==0)

                            continue;

                     System.out.println("x="+x);

              }

              */

              xiaoqiang:for(int x=0; x<3 ;x++ )

              {

                     wangcai:for(int y=0; y<4 ; y++)

                     {

                            System.out.println("x="+x);

                            continuexiaoqiang;

                     }

                    

              }

      

       }

}

 

       函数:

              函数的特点:

                     ·定义函数可以将功能代码进行封装

                     ·便于对该功能进行复用

                     ·函数只有被调用才会执行

                     ·函数的出现提高了代码的服用性

                     ·对于函数没有具体返回值的情况,返回类型用关键字void表示,那么该函数中的return语句如果在最后一行可以省略不写。

                     ·注意:

                            函数中只能调用函数,不可以在函数内部定义函数。

                            定义函数时,函数的结果应该返回给调用者,交由调用者处理。

              class FunctionDemo

{

       public static voidmain(String[] args)

       {

//            inta = 3;

//            intb = 4;

//            intc;

//            c= a+b;

//

//            c= 5+7;

//            c= 9+8;

             

 

//            intc = add(3);

//            System.out.println("c="+c);

 

//            System.out.println("helloworld");

//            myPrint();

//            myPrint();

 

       }

       /*

       定义函数的格式:

 

       修饰符返回值类型函数名(参数类型形式参数1,参数类型形式参数2...)

       {

                     执行语句;

                     return返回值;

       }

 

 

 

       特殊情况:

       功能没有具体的返回值。

 

       这时return的后面直接用分号结束。

       返回值类型怎么体现呢?因为没有具体值,所以不可以写具体的数据类型。

       java中只能用一个关键字来表示这种情况。关键字是:void.

 

       总结:没有具体返回值时,返回值类型用void来表示。

 

       注意:如果返回值类型是void,那么函数中的return语句可以省略不写。

 

 

       */

      

       public static voidmyPrint()

       {

              System.out.println("hellojava");

              return ;

       }

 

 

 

       public static intadd(int a,int b)

       {

              return a+b;

       }

 

}

 

class FunctionDemo2

{

       public static voidmain2(String[] args)

       {           

 

//            myPrint();

              int x =add(3,5);//绞肉机

              System.out.println("x="+x);

//            System.out.println(add(3,5));

       }

       /*

       publicstatic void add(int a,int b)

       {

              System.out.println(a+b);

              return;

       }

       */

       public static intadd(int a,int b)

       {

              return a+b;

       }

       /**/

       public static voidmyPrint()

       {

              System.out.println("HelloWorld!");

       }

}

 

class FunctionDemo3

{

       public static voidmain(String[] args)

       {

//            draw(4,6);

//            draw(7,9);

//            print99();

 

              System.out.println("hello");

             

       }

 

       /*

       需求1定义一个功能,完成两个整数的和的获取。

       思路:既然定义功能,就是可以用函数来体现。

              如何定义一个函数呢?

              通过两个明确来完成。

       明确一:这个功能的结果是什么?

              是和。是功能的结果,所以该功能的返回值类型是int

              其实就是在明确函数的返回值类型。

 

                    

       明确二:这个功能实现过程中是否需要未知内容参与运算?

              有,加数和被加数。这就是函数的参数列表(参数的个数,参数的类型)

              其实就是在明确参数列表。

 

       注意:返回值类型和参数类型没有直接关系。

 

       */

       public static intadd(int a,int b)

       {

              int sum = a+b;

              return sum;

       }

 

       /*

       需求2定义一个功能,画一个矩形在控制台。

       明确一:这个功能的结果是什么?

              没有结果,因为直接打印到了,控制台,并未返回给调用者。

              void表示。

       明确二:这个功能实现过程中是否需要未知内容参与运算?

              有,行和列不确定。两个。整数 int.

       */

       public static voiddraw(int row,int col)

       {

              for (int x=1;x<=row ;x++ )

              {

                     for (inty=1;y<=col ; y++ )

                     {

                            System.out.print("*");

                     }

                     System.out.println();

              }

//            return;//可以省略不写。

       }

       /*

       需求3定义一个功能,比较两个数是否相等。

       明确一:这个功能的结果是什么?

                     有,boolean.

       明确二:这个功能实现过程中是否需要未知内容参与运算?

                     有,两个整数。

       */

       public static booleanequals(int a,int b)

       {

              /*

              if(a==b)

                     returntrue;

              else

                     returnfalse;

 

 

              booleanx ;

              if(a==b)

                     x= true;

              else

                     x= false;

              returnx;

 

              */

//            return(a==b)?true:false;

              return a==b;

             

       }

 

       /*

       需求1定义一个功能,获取两个整数中较大的那个数。

       明确一:这个功能的结果是什么?

                     有,其中一个数。 int

       明确二:这个功能实现过程中是否需要未知内容参与运算?

                     有,参与比较的两个整数 int

       */

       public static intgetMax(int a,int b)

       {

              /*

              if(a>b)

                     returna;

              else

                     returnb;

              */

 

              returna>b?a:b;

       }

 

       /*

       定义功能,打印99乘法表。

       */

 

       public static void print99()

       {

              for(int x=1;x<=9; x++)

              {

                     for(inty=1; y<=x; y++)

                     {

                            System.out.print(y+"*"+x+"="+y*x+"\t");

                     }

                     System.out.println();

              }

       }

 

       /*

       根据考试成绩获取学生分数对应的等级

       90~100          A

       80~89            B

       70~79            C

       60~69            D

       60以下          E

 

       结果:等级,字符,char

       参数:分数int.

       */

 

       public static chargetLevel(int num)

       {

              char level ;

              if(num>=90&& num<=100)

                     level ='A';

              elseif(num>=80 && num<=89)

                     level=  'B';

              elseif(num>=70 && num<=79)

                     level=  'C';

              elseif(num>=60 && num<=69)

                     level=  'D';

              else

                     level = 'E';

 

              return level;

       }

}

 

函数的重载:

       重载的概念:在同一个类中,允许存在一个以上的同名函数,只要它们的参数个数或者参数类型不同即可。

       重载的特点:与返回值类型无关,只看参数列表。

       重载的好处:方便阅读,优化程序设计

/*

需求:函数的重载。

*/

 

class FunctionDemo4

{

       public static voidmain(String[] args)

       {

//            add(4,6,9);

//            System.out.println("HelloWorld!");

              printCFB(7);

       }

 

       /*

       函数的重载。

 

       1,同一个类,

       2,同名。

       3,参数个数不同。or 参数类型不同。

       4,函数重载和返回值类型无关。

       5java是严谨性语言,如果函数出现的调用的不确定性,会编译失败。

 

 

       */

 

       //加法运算。两个整数的和。

       public static intadd(int a,int b)

       {

              return a+b;

       }

      

 

       //加法运算。两个小数的和。

       public static doubleadd(double a,double b)

       {

              return a+b;

       }

 

       //加法运算,三个整数的和。

       public static intadd(int a,int b,int c)

       {

              returnadd(a,b)+c;

       }

 

 

       /*

       打印乘法表。

       */

       public static voidprintCFB(int num)

       {

              for(int x=1;x<=num; x++)

              {

                     for(inty=1; y<=x; y++)

                     {

                            System.out.print(y+"*"+x+"="+y*x+"\t");

                     }

                     System.out.println();

              }

       }

 

       /*

       打印标准乘法表。

       */

       public static voidprintCFB()

       {

              printCFB(9);

       }

}

      

       数组:

              概念:同一种类型数据的集合。其实数组就是一个容器

              数组的好处:可以自动给数组中的元素从0开始编号,方便操作这些元素。

              格式1:

                     元素类型[] 数组名=new 元素类型[元素个数或数组长度];int [] arr =newint[5]

              格式二:

                     元素类型[] 数组名=new 元素类型[] {元素1,元素2...}

                     int [] arr=new int[]{1,2,3} ; int [] arr={1,2,3}

 

 

              第一种定义格式:

class ArrayDemo

{

 

       public static voidmain(String[] args)

       {

              //元素类型[] 数组名 = new 元素类型[元素个数或数组长度];

 

             

              {//局部代码块。限定局部变量的生命周期。

                     int age =3;

                     System.out.println(age);

              }

 

 

              int[] arr = newint[3];

 

//            arr[0]= 89;

              System.out.println(arr[0]);

              for(int x=0;x<4; x++){}

 

       }

}

 

 

/*

内存的划分:

1,寄存器。

2,本地方法区。

3,方法区。

4,栈内存。

       存储的都是局部变量。

       而且变量所属的作用域一旦结束,该变量就自动释放。

 

 

5,堆内存。

       存储是数组和对象(其实数组就是对象) 凡是new建立在堆中。

       特点:

       1,每一个实体都有首地址值。

       2,堆内存中的每一个变量都有默认初始化值,根据类型的不同而不同。整数是0,小数0.0或者0.0fbooleanfalse char '\u0000'

       3,垃圾回收机制。

*/

 

 

 

class ArrayDemo2

{

       public static void main(String[] args)

       {

              int[] arr = newint[3];

//            System.out.println(arr[3]);//ArrayIndexOutOfBoundsException:

              //当访问到数组中不存在的角标时,就会发生该异常。

 

//            arr= null;

//            System.out.println(arr[0]);//NullPointerException

//            当引用型变量没有任何实体指向时,还在用其操作实体。就会发生该异常。

 

//            System.out.println(arr);//  [I@c17164

             

       }

}

 

第五天:

              第二中定义格式:

              classArrayDemo3

{

       public static voidmain(String[] args)

       {

              //格式1

              /*

              需要一个容器,但是不明确容器的具体数据。

              */

//            int[]arr = new int[3];

 

 

              /*

              需要一个容器,存储已知的具体数据。

              */

              //元素类型[] 数组名= new 元素类型[]{元素,元素,……};

//            int[]arr = new int[]{89,34,270,17};

              int[] arr ={89,34,270,17};

 

              /*

              对数组操作最基本的动作就是存和取。

              核心思想:就是对角标的操作。

             

              */

 

              System.out.println("length:"+arr.length);

              for(int x=0;x<arr.length ; x++)

              {

                     System.out.println("arr["+x+"]= "+arr[x]+";");//arr[0] = 89;

              }

 

              for(intx=arr.length-1; x>=0; x--)

              {

                     System.out.println("arr["+x+"]= "+arr[x]+";");//arr[0] = 89;

              }

//            System.out.println(arr[1]);

//            System.out.println(arr[2]);

//            System.out.println(arr[3]);

             

       }

}

 

对数组的操作:

import java.util.*;

 

class ArrayDemo4

{

 

       //遍历数组的功能。

       public static voidprintArray(int[] arr)

       {

              System.out.print("[");

              for(int x=0;x<arr.length; x++)

              {

                     if(x!=arr.length-1)

                            System.out.print(arr[x]+",");

                     else

                            System.out.println(arr[x]+"]");

              }

       }

       public static voidmain(String[] args)

       {

              int[] arr ={34,19,11,109,3,56};

 

//            intmax = getMax_2(arr);

//            System.out.println("max="+max);

 

              printArray(arr);

 

//            selectSort(arr);

//            bubbleSort(arr);

//            Arrays.sort(arr);

              selectSort_2(arr);

 

              printArray(arr);

       }

 

       public static voidswap(int[] arr,int a,int b)

       {

              int temp =arr[a];

              arr[a] = arr[b];

              arr[b] = temp;

       }

       /*

       冒泡排序。

       */

 

       public static voidbubbleSort(int[] arr)

       {

              for(int x=0;x<arr.length-1; x++)

              {

                     for(inty=0; y<arr.length-1-x; y++)

                     {

                            if(arr[y]>arr[y+1])

                            {

                                   swap(arr,y,y+1);

                                   /*

                                   inttemp  = arr[y];

                                   arr[y]= arr[y+1];

                                   arr[y+1]= temp;

                                   */

                            }

                     }    

              }

       }

 

 

       /*

       选择排序。

       */

 

 

       public static voidselectSort(int[] arr)

       {

              for(int x=0;x<arr.length-1; x++)

              {

                     for(inty=x+1; y<arr.length; y++)

                     {

                            if(arr[x]>arr[y])

                            {

                                   swap(arr,x,y);

                                   /*

                                   inttemp  = arr[x];

                                   arr[x]= arr[y];

                                   arr[y]= temp;

                                   */

                            }

                     }

              }

       }

 

       public static voidselectSort_2(int[] arr)

       {

              for(int x=0;x<arr.length-1; x++)

              {

                     int num =arr[x];

                     int index= x;

                     for(inty=x+1; y<arr.length; y++)

                     {

                            if(num>arr[y])

                            {

                                   num= arr[y];

                                   index= y;

                            }

                     }

                     if(index!=x)

                            swap(arr,x,index);

              }

       }

 

 

       /*

       获取数组中的最大值。

       思路:

       1,需要进行比较。并定义变量记录住每次比较后较大的值。

       2,对数组中的元素进行遍历取出,和变量中记录的元素进行比较。

              如果遍历到的元素大于变量中记录的元素,就用变量记录住该大的值。

       3,遍历结果,该变量记录就是最大值。

 

       定义一个功能来是实现。

       明确一,结果。

                     是数组中的元素。int .

       明确二,未知内容。

                     数组.

       */

       public static intgetMax(int[] arr)

       {

              //定义变量记录较大的值。

              int maxElement =arr[0];//初始化为数组中的任意一个元素

              for(int x=1;x<arr.length; x++)

              {

                     if(arr[x]>maxElement)

                            maxElement= arr[x];

              }

              returnmaxElement;

       }

       public static intgetMax_2(int[] arr)

       {

              //定义变量记录较大的值。

              int maxIndex = 0;//初始化为数组中任意一个角标。

              for(int x=1;x<arr.length; x++)

              {

                     if(arr[x]>arr[maxIndex])

                            maxIndex= x;

              }

              returnarr[maxIndex];

       }

}

 

import java.util.*;

/*

面试题:

给定一个有序的数组,如果往该数组中存储一个元素,并保证这个数组还是有序的,

那么个元素的存储的角标为如何获取。

{13,15,19,28,33,45,78,106};

*/

class ArrayDemo5

{

       public static voidmain(String[] args)

       {

//

//            int[]arr = {4,1,8,7,3,8,2};

              int[] arr = {13,15,19,28,33,45,78,106};

              int index =halfSearch_2(arr,5);

              System.out.println("index="+index);

 

              int index1 =Arrays.binarySearch(arr,5);//如果存在返回的具体的角标位置,不存在返回的是  -插入点-1

              System.out.println("index1="+index1);

       }

       /*

       二分查找法。

      

       */

 

       public static inthalfSearch(int[] arr,int key)

       {

              int max,min,mid;

              min = 0;

              max =arr.length-1;

              mid =(max+min)/2;

             

              while(arr[mid]!=key)

              {

                     if(key>arr[mid])

                            min= mid + 1;

                     elseif(key<arr[mid])

                            max= mid - 1;

 

                     if(max<min)

                            return-1;

 

                     mid =(max+min)/2;

              }

              return mid;

 

       }

 

       public static inthalfSearch_2(int[] arr,int key)

       {

              int max,min,mid;

              min = 0;

              max =arr.length-1;

 

              while(min<=max)

              {

                     mid =(max+min)>>1;

 

                     if(key>arr[mid])

                            min= mid + 1;

                     elseif(key<arr[mid])

                            max= mid - 1;

                     else

                            returnmid;

              }

              return -min-1;

       }

 

 

       /*

       数组常见功能:查找。

       */

       public static intgetIndex(int[] arr,int key)

       {

              for(int x=0;x<arr.length; x++)

              {

                     if(arr[x]==key)

                            returnx;

              }

              return -1;

       }

}

 

 

 

 

 

 

 

class  ArrayTest

{

/*

给定一个数组,对其进行反转。

 

{3,1,6,5,8,2} -->

{2,8,5,6,1,3};

 

其实就是头尾元素的位置置换。

 

*/

 

       public static voidprintArray(int[] arr)

       {

              System.out.print("[");

              for(int x=0;x<arr.length; x++)

              {

                     if(x!=arr.length-1)

                            System.out.print(arr[x]+",");

                     else

                            System.out.println(arr[x]+"]");

              }

       }

       public static voidmain(String[] args)

       {

              int[] arr ={4,1,8,7,3,8,2};

              printArray(arr);

              reverseArray(arr);

              printArray(arr);

       }

 

       public static voidreverseArray(int[] arr)

       {

              for(int start=0,end=arr.length-1;start<end; start++,end--)

              {

                     swap(arr,start,end);

              }

       }

       public static voidswap(int[] arr,int a,int b)

       {

              int temp =arr[a];

              arr[a] = arr[b];

              arr[b] = temp;

       }

}

 

进制的转换(重要):

class ArrayTest2

{

/*

获取一个整数的16进制表现形式。

*/

 

       public static voidmain(String[] args)

       {

              toHex_2(0);

       }

 

//     0,1,2,3,4,5,6,7,8,9,A,  B, C, D, E, F

//     0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15

 

       /*

       什么时候使用数组呢?

       如果数据出现了对应关系,而且对应关系的一方是有序的数字编号。并作为角标使用。

       这时就必须要想到数组的使用。

      

       就可以将这些数据存储到数组中。

       根据运算的结果作为角标直接去查数组中对应的元素即可。

 

       这种方式:称为查表法。

 

 

 

      

       */

 

 

       public static voidtoHex_2(int num)

       {

 

              if(num==0)

              {

                     System.out.println("0");

                     return ;

              }

              //定义一个对应关系表。

              char[] chs ={'0','1','2','3',

                                          '4','5','6','7',

                                          '8','9','A','B',

                                          'C','D','E','F'};

              /*

              一会查表会查到比较的数据。

              数据一多,就先存储起来,在进行操作。

              所以定义一个数组。临时容器。

              */

              char[] arr = newchar[8];

              int pos =arr.length;

 

              while(num!=0)

              {

                     int temp =num&15;

                     arr[--pos]= chs[temp];

                     num  = num >>> 4;

              }

 

              System.out.println("pos="+pos);

              for(int x=pos ;x<arr.length;x++)

              {

                     System.out.print(arr[x]);

              }

 

 

       }

 

       public static voidtoHex_1(int num)

       {

              //定义一个对应关系表。

              char[] chs ={'0','1','2','3',

                                          '4','5','6','7',

                                          '8','9','A','B',

                                          'C','D','E','F'};

             

              for(int x=0 ;x<8; x++)

              {

                     int temp =num & 15;

                     System.out.print(chs[temp]);

                     num = num>>> 4;

              }

 

       }

 

       public static voidtoHex(int num)

       {

 

              for(int x=0;x<8; x++)

              {

                     int temp =num & 15;

                     if(temp>9)

                            System.out.print((char)(temp-10+'A'));

                     else

                            System.out.print(temp);

                     num = num>>> 4;

              }

              /*

              intn1 = num & 15;

              System.out.println("n1="+n1);

 

              num= num >>> 4;

              intn2 = num & 15;

              System.out.println("n2="+n2);

              */

       }

}

 

class ArrayTest3

{

       public static voidmain(String[] args)

       {

//            toHex(26);

              toBinary(-6);

//            toOctal(26);

              System.out.println(Integer.toBinaryString(-6));

       }

 

       //十进制-->十六进制。

       public static voidtoHex(int num)

       {

              trans(num,15,4);

       }

       //十进制-->二进制。

       public static voidtoBinary(int num)

       {

              trans(num,1,1);

       }

       //十进制-->八进制。

       public static voidtoOctal(int num)

       {

              trans(num,7,3);

       }

 

       public static voidtrans(int num,int base,int offset)

       {

 

              if(num==0)

              {

                     System.out.println("0");

                     return ;

              }

              //定义一个对应关系表。

              char[] chs ={'0','1','2','3',

                                          '4','5','6','7',

                                          '8','9','A','B',

                                          'C','D','E','F'};

              /*

              一会查表会查到比较的数据。

              数据一多,就先存储起来,在进行操作。

              所以定义一个数组。临时容器。

              */

              char[] arr = newchar[32];

              int pos =arr.length;

 

              while(num!=0)

              {

                     int temp =num & base;

                     arr[--pos]= chs[temp];

                     num  = num >>> offset;

              }

 

              for(int x=pos;x<arr.length; x++)

              {

                     System.out.print(arr[x]);

              }

              System.out.println();

 

       }

}

class ArrayTest4

{

       public static voidmain(String[] args)

       {

              String week =getWeek(71);

              System.out.println(week);

       }

       /*

       使用查表法。

       星期。

       Strings = "abc";

       intx = 4;

       */

       public static StringgetWeek(int num)

       {

 

              if(num>7 ||num<1)

              {

                     return"错误的星期";

              }

              String[] weeks ={"","星期一","星期二","星期三","星期四","星期五","星期六","星期日"};

 

              returnweeks[num];

       }

 

}

 

 

第六天

       二维数组:

       格式1:int[][] arr = new int[3][2]

              ·定义了名称为arr的二维数组

              ·二维数组中有3个一维数组

              ·每个一维数组中有2个元素

              ·一维数组名称分别为arr[0],arr[1],arr[2]

              ·给第一个一维数组1角标位赋值78的写法是:arr[0][1]=78

       格式二:int [][] arr=new int[3][]

              ·二维数组中有三个一维数组

              ·每个一维数组都是默认初始值null

              ·可以对这三个一维数组分别初始化

                     Arr[0]=new int[3]

                     Arr[1]=new int[2]

                     Arr[3]=new int[5]

 

/*

二维数组定义的格式。

*/

class  Array2Demo

{

       public static voidmain(String[] args)

       {

 

//            int[]arr = new int[3]; 

//            System.out.println(arr);//[I@1fb8ee3  @左边是实体的类型。 @右边是实体的哈希值。

 

//            int[][]arr = new int[3][2];//创建一个二维数组,该数组中有3个一维数组,每一个一维数组中有2个元素。

//            System.out.println(arr);//直接打印二维数组。   [[I@c17164

//            System.out.println(arr[0]);//直接打印二维数组中的角标0的一维数组。 [I@1fb8ee3

//            System.out.println(arr[0][0]);//直接打印二维数组中的角标0的一维数组中角标为0的元素。 0

//            int[][]arr = new int[3][];

//            System.out.println(arr);//直接打印二维数组。   [[I@c17164

//            System.out.println(arr[0]);//直接打印二维数组中的角标0的一维数组。null

//            System.out.println(arr[0][0]);//直接打印二维数组中的角标0的一维数组中角标为0的元素。NullPointerException

      

//            int[][]arr = new int[3][2];

//            System.out.println(arr.length);//打印二维数组的长度。其实就是一维数组的个数。

//            System.out.println(arr[1].length);//打印二维数组中角标为1一维数组的长度。

 

              int sum = 0;

              int[][] arr ={{3,1,7},{5,8,2,9},{4,1}};

 

              for(int x=0;x<arr.length; x++)

              {

                     for(inty=0; y<arr[x].length; y++)

                     {

//                          System.out.print(arr[x][y]+",");

                            sum+= arr[x][y];

                           

                     }

              }

              System.out.println("sum="+sum);

 

 

//            甲:3059 28 17

//            乙;3760 22 19

//            int[]arr = {{30,59,28,17},{37,60,22,19}};

 

              int[][][] arr =new int[3][2][4];

       }

}

 

/*

int[] x,y[];

int[] x;

int[] y[];

a

x = y;

b

x = y[0];

 

c

x[0] = y[0];

d

x[0] = y[0][0];

e

x[0] = y;

*/

 

 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值