分享

php33

 afskd 2011-05-08
public class Assign {
   public static void main (String args [ ] ) {
   int x , y ; //定义x,y两个整型变量
   float z = 1.234f ; //指定变量z为float型,且赋初值为1.234
   double w = 1.234 ; //指定变量w为double型,且赋初值为1.234
   boolean flag = true ; //指定变量flag为boolean型,且赋初值为true
   char c ; //定义字符型变量c
   String str ; //定义字符串变量str
   String str1 = " Hi " ; //指定变量str1为String型,且赋初值为Hi
   c = ' A ' ; //给字符型变量c赋值'A'
   str = " bye " ; //给字符串变量str赋值"bye"
   x = 12 ; //给整型变量x赋值为12
   y = 300; //给整型变量y赋值为300
   }
  }
3控制语句

  Java程序通过控制语句来执行程序流,完成一定的任务。程序流是由若干个语句组成的,语句可以是单一的一条语句,如c=a+b,也可以是用大括号{}括起来的一个复合语句。Java中的控制语句有以下几类:
  ◇ 分支语句:if-else, switch
  ◇ 循环语句:while, do-while, for
  ◇ 与程序转移有关的跳转语句:break, continue, return
  ◇ 例外处理语句:try-catch-finally, throw
  ◇ 注释语句://,/* */, /** */

2.3.1 分支语句

  分支语句提供了一种控制机制,使得程序的执行可以跳过某些语句不执行,而转去执行特定的语句。

  
1.条件语句 if-else

   if(boolean-expression)
    statement1;
   [else statement2;]

  
2.多分支语句 switch

   switch (expression){
    case value1 : statement1;
   break;
    case value2 : statement2;
   break;
   …………
    case valueN : statemendN;
   break;
    [default : defaultStatement; ]
   }

   表达式expression的返回值类型必须是这几种类型之一:int,byte,char,short。
   case子句中的值valueN必须是常量,而且所有case子句中的值应是不同的。
   default子句是可选的。
  break语句用来在执行完一个case分支后,使程序跳出switch语句,即终止switch语句的执行(在一些特殊情况下,多个不同的case值要执行一组相同的操作,这时可以不用break)。

2.3.2 循环语句

  循环语句的作用是反复执行一段代码,直到满足终止循环的条件为止。Java语言中提供的循环语句有:
   
while语句
   
do-while语句
   
for语句

  1.while语句

  [initialization]
  while (termination){
    body;
  [iteration;]
  }

 
2.do-while语句

  [initialization]
  do {
    body;
  [iteration;]
  } while (termination);

 
3.for语句

  for (initialization; termination; iteration){
    body;
  }

  ◇
for语句执行时,首先执行初始化操作,然后判断终止条件是否满足,如果满足,则执行循环体中的语句,最后执行迭代部分。完成一次循环后,重新判断终止条件。
  ◇ 初始化、终止以及迭代部分都可以为空语句(但分号不能省),三者均为空的时候,相当于一个无限循环。
  ◇ 在初始化部分和迭代部分可以使用逗号语句,来进行多个操作。逗号语句是用逗号分隔的语句序列。
   for( i=0, j=10; i<j; i++, j--){
    ……
   }

.3.3 跳转语句

   break语句
   continue语句
   返回语句return

  1.break语句

  ◇ 在switch语中,break语句用来终止switch语句的执行。使程序从switch语句后的第一个语句开始执行。
  ◇ 在Java中,可以为每个代码块加一个括号,一个代码块通常是用大括号{}括起来的一段代码。加标号的格式如下:
  BlockLabel: { codeBlock }
  break语句的第二种使用情况就是跳出它所指定的块,并从紧跟该块的第一条语句处执行。例如:
  break BlockLabel;
  break语句
  a:{…… //标记代码块a
  b:{…… //标记代码块b
  c:{…… //标记代码块c
  break b;
   …… //此处的语句块不被执行
  }
   …… /此处的语句块不被执行
  }
   …… //从此处开始执行
  }

 
2.continue语句

  continue语句用来结束本次循环,跳过循环体中下面尚未执行的语句,接着进行终止条件的判断,以决定是否继续循环。对于for语句,在进行终止条件的判断前,还要先执行迭代语句。它的格式为:
   continue;

  也可以用continue跳转到括号指明的外层循环中,这时的格式为
   continue outerLable;

  例如:
   outer: for( int i=0; i<10; i++ ){ //外层循环
   inner: for( int j=0; j<10; j++ ){ //内层循环
   if( i<j ){
     ……
   continue outer;

   }
     ……
   }
     ……
   }

 
3.返回语句return
   
  return语句从当前方法中退出,返回到调用该方法的语句处,并从紧跟该语句的下一条语句继续程序的执行。返回语句有两种格式:
  return expression ;
  return;

  return语句通常用在一个方法体的最后,否则会产生编译错误,除非用在if-else语句中

2.3.4 例外处理语句

  包括try,catch,finally,throw语

2.4 数组

  java语言中,数组是一种最简单的复合数据类型。数组是有序数据的集合,数组中的每个元素具有相同的数据类型,可以用一个统一的数组名和下标来唯一地确定数组中的元素。数组有一维数组和多维数组。

2.4.1 一维数组

 1. 一维数组的定义

  type arrayName[ ];
  类型(type)可以为Java中任意的数据类型,包括简单类型和复合类型。
  例如:
   int intArray[ ];
   Date dateArray[];


 
2.一维数组的初始化

   静态初始化
    int intArray[]={1,2,3,4};
    String stringArray[]={"abc", "How", "you"};


  
动态初始化
    1)简单类型的数组
    int intArray[];
    intArray = new int[5];

   2)复合类型的数组
    String stringArray[ ];
    String stringArray = new String[3];/*为数组中每个元素开辟引用
                      空间(32位) */

    stringArray[0]= new String("How");//为第一个数组元素开辟空间
    stringArray[1]= new String("are");//为第二个数组元素开辟空间
    stringArray[2]= new String("you");// 为第三个数组元素开辟空间


 
3.一维数组元素的引用

  数组元素的引用方式为:
     arrayName[index]

  index为数组下标,它可以为整型常数或表达式,下标从0开始。每个数组都有一个属性length指明它的长度,例如:intArray.length指明数组intArray的长度。

2.4.2 多维数组

  Java语言中,多维数组被看作数组的数组。

 1.二维数组的定义

  type arrayName[ ][ ];
  type [ ][ ]arrayName;

 
2.二维数组的初始化

  
静态初始化
  int intArray[ ][ ]={{1,2},{2,3},{3,4,5}};

  Java语言中,由于把二维数组看作是数组的数组,数组空间不是连续分配的,所以不要求二维数组每一维的大小相同。

  
动态初始化
  1) 直接为每一维分配空间,格式如下:
  arrayName = new type[arrayLength1][arrayLength2];
  int a[ ][ ] = new int[2][3];

  2) 从最高维开始,分别为每一维分配空间:
  arrayName = new type[arrayLength1][ ];
  arrayName[0] = new type[arrayLength20];
  arrayName[1] = new type[arrayLength21];
  …
  arrayName[arrayLength1-1] = new type[arrayLength2n];

  3) 例:
  二维简单数据类型数组的动态初始化如下,
  int a[ ][ ] = new int[2][ ];
  a[0] = new int[3];
  a[1] = new int[5];

  对二维复合数据类型的数组,必须首先为最高维分配引用空间,然后再顺次为低维分配空间。
  而且,必须为每个数组元素单独分配空间。

  例如:
  String s[ ][ ] = new String[2][ ];
  s[0]= new String[2];//为最高维分配引用空间
  s[1]= new String[2]; //为最高维分配引用空间
  s[0][0]= new String("Good");// 为每个数组元素单独分配空间
  s[0][1]= new String("Luck");// 为每个数组元素单独分配空间
  s[1][0]= new String("to");// 为每个数组元素单独分配空间
  s[1][1]= new String("You");// 为每个数组元素单独分配空间

 
3.二维数组元素的引用
  
  对二维数组中的每个元素,引用方式为:arrayName[index1][index2]
  例如: num[1][0];

 
4.二维数组举例:

【例2.2】两个矩阵相乘
  public class MatrixMultiply{
   public static void main(String args[]){
   int i,j,k;
   int a[][]=new int [2][3]; //动态初始化一个二维数组
   int b[][]={{1,5,2,8},{5,9,10,-3},{2,7,-5,-18}};//静态初始化
                           一个二维数组

   int c[][]=new int[2][4]; //动态初始化一个二维数组
   for (i=0;i<2;i++)
     for (j=0; j<3 ;j++)
      a[i][j]=(i+1)*(j+2);
   for (i=0;i<2;i++){
     for (j=0;j<4;j++){
      c[i][j]=0;
   for(k=0;k<3;k++)
     c[i][j]+=a[i][k]*b[k][j];
      }
     }
   System.out.println("*******Matrix C********");//打印Matrix C标记
   for(i=0;i<2;i++){
     for (j=0;j<4;j++)
      System.out.println(c[i][j]+" ");
     System.out.println();
      }
     }
   }

2.5 字符串的处理

2.5.1 字符串的表示

  Java语言中,把字符串作为对象来处理,类String和StringBuffer都可以用来表示一个字符串。(类名都是大写字母打头)

 1.字符串常量

  字符串常量是用双引号括住的一串字符。
    "Hello World!"

 
2.String表示字符串常量

  用String表示字符串:
  String( char chars[ ] );
  String( char chars[ ], int startIndex, int numChars );
  String( byte ascii[ ], int hiByte );
  String( byte ascii[ ], int hiByte, int startIndex, int numChars );
  String使用示例:
  String s=new String() ; 生成一个空串

  下面用不同方法生成字符串"abc":
  char chars1[]={'a','b','c'};
  char chars2[]={'a','b','c','d','e'};
  String s1=new String(chars1);
  String s2=new String(chars2,0,3);
  byte ascii1[]={97,98,99};
  byte ascii2[]={97,98,99,100,101};
  String s3=new String(ascii1,0);
  String s4=new String(ascii2,0,0,3);

 
3.用StringBuffer表示字符串

  StringBuffer( ); /*分配16个字符的缓冲区*/
  StringBuffer( int len ); /*分配len个字符的缓冲区*/
  StringBuffer( String s ); /*除了按照s的大小分配空间外,再分配16个
               字符的缓冲区*/

2.5.2 访问字符串

  1.类String中提供了length( )、charAt( )、indexOf( )、lastIndexOf( )、getChars( )、getBytes( )、toCharArray( )等方法。

  
public int length() 此方法返回字符串的字符个数
   public char charAt(int index) 此方法返回字符串中index位置上的字符,其中index 值的 范围是0~length-1
   public int indexOf(int ch)
    public lastIndexOf(in ch)
  
  返回字符ch在字符串中出现的第一个和最后一个的位置
   public int indexOf(String str)
    public int lastIndexOf(String str)
  返回子串str中第一个字符在字符串中出现的第一个和最后一个的位置
   public int indexOf(int ch,int fromIndex)
    public lastIndexOf(in ch ,int fromIndex)
  返回字符ch在字符串中位置fromIndex以后出现的第一个和最后一个的位置
   public int indexOf(String str,int fromIndex)
    public int lastIndexOf(String str,int fromIndex)
  返回子串str中的第一个字符在字符串中位置fromIndex后出现的第一个和最后一个的位置。
   public void getchars(int srcbegin,int end ,char buf[],int dstbegin)
   srcbegin 为要提取的第一个字符在源串中的位置, end为要提取的最后一个字符在源串中的位置,字符数组buf[]存放目的字符串,    dstbegin 为提取的字符串在目的串中的起始位置。
  public void getBytes(int srcBegin, int srcEnd,byte[] dst, int dstBegin)
  参数及用法同上,只是串中的字符均用8位表示。

 
2.类StringBuffer提供了 length( )、charAt( )、getChars( )、capacity()等方法。

  方法capacity()用来得到字符串缓冲区的容量,它与方法length()所返回的值通常是不同的

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多