免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1126 | 回复: 0
打印 上一主题 下一主题

java语句 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-10-27 19:13 |只看该作者 |倒序浏览

Java语句总结:
     Java中语句有空语句,表达式语句,块语句,标号语句,选择语句,循环语句,跳转语句,同步语句,例外语句。
1)  空语句:在操作系统中比较常用。这里举个不太恰当的例子
     class NoBody {
        public static void main(String [ ] args){
           int i=1,j=5;
           while(++i  ;
           Systems.out.println(i);
        }
}
   功能:输出i和j的中间数。

2)  表达式语句:x = x+1,++x,x++,--x,x--,objRef.method(),new MyClass(),这与c中的比较类似,不再赘述。
3)  选择语句:
     if-else  : if(condition){
                              statement;
            }else{
   statement;
}
这里直接出现在if语句后的else只能有一个,if后的条件condition必须是boolean型的。
嵌套式的if-else if:if(condition1){
                                    Statement1;
}
else if(condition2){
   Statement2;
}
else if(condition3){
   statement3;
}
else {
   Statement4;
}
     这种阶梯形的可以和switch()语句实现相同的功能,switch()语句结构更清楚。这种结构执行时只要有一个控制if的条件为真,就执行他后边的statement,然后跳过该阶梯形的其余部分。如果没有一个条件为真,将执行最后一个else中的statement。如果没有else并且所有条件都为假,则不发生任何动作。
   
     Switch()语句:
         switch(expression){
            case value1:  statement1
                        break;
            case value2:  statement2 ;
                        break;
            case value3:  statement3;
                        break;
            case value4:  statement14;
                        break;
            default  :    statement;    //该项是可选的
                        break;
}
switch()语句的基本用法和c基本一致,需要注意的是switch(expression)中的expression只能是int,char,short,byte。当expression为char时case后的value需要加上单引号,表示他是一个字符。Case语句后的break也是可以省略的如:
  case  0:
  case  1:
  case  3: statement;
            break;
switch()和if-else语句的不同在于switch仅能测试相等的情况,而if可以测试任何布尔表达式。同一个switch中不能有相同的两个value。
Java编译器在编译switch语句时,将检查每个case常量,并创建一个“跳转表”,该表用于在表达式的基础上选择执行路径。因此在多值选择时switch将比if-else运行效率更高。
4)循环语句
for(),while(),do-while()基本用法与c相同。需要注意的是while(1){}这条语句在c中是合法的,但在java中是不允许的。Java中while(condition)的condition只能是boolean型的值或表达式。
Java从j2SE5开始定义了地二中for形式,即“for-each“风格循环。基本形式为
   for(type itr-var : collection)  statementblock
其中type定义了类型,itr-var指定了迭代变量(iteration variable)名,该变量将收集集合中的元素,方式是从集合的开始到结束一次一个。所要循环的集合由collection 指定。
例如:public ForEach{
         public static void main(String [] args){
            int nums[] = {1,2,3,4,5,6,7,8,9};
            int sum1 = 0 , sum2 = 0;
            for(int i = 0; i
               sum1 += nums;
}
for(int x : nums){
   sum2 += x;
   //if(x==5)  break;
}
System.out.println(“sum1=”+sum1);
System.out.println(“sum2=”+sum2);
}
}   
结果:sum1=45
      Sum2=45
每次循环时,系统会给x自动赋予一个与nums中下一个元素相等的值。因此在首次迭代时x包含1,第二次是包含2.等等。虽然for-each风格中的for会自动从最低下标到最高下标的顺序在数组中循环,但也可以使用break语句提前终止该循环。如上例中如果执行berak语句则输出结果为:sum1=45
                   sum2=15
注意x的声明必须与nums的类型是相同或兼容的。
5)break语句
      break的用法有三种1.退出switch。2.退出循环。3.跳转功能(和c的goto比较像)。
  前两种用法不再赘述。仅看第二种用法如:
       class Break{
          public static void main(String [] args){
             boolean  t = true;
                        test :{
   System.out.println(“This is test block!”);
}
first :{
                           second:{
                                 third :{
                                        System.out.println(“berore break!”);
                                           if(t){
      break second;
}
                                            System.out.println(“NO”);
                                 }
                                  System.out.println(“NO”);
                           }
                          System.out.println(“out from second!”)
}
                       System.out.println(“out from first!”);
}
}
结果:This is test block!
before break!
           out from second!
          out from first!
Break的这种用法不常用,但在跳出比嵌套较深的循环时非常有用。 可以看到Break带有一个标签label,当执行这种break语句控制循环转移到指定的程序块,程序会从带标签块的末尾恢复执行,带标签的程序块必须包含这个break,但不需直接包含。如果将程序中的break  second;换为break test;程序将无法通过编译,系统将会提示 :test :未定义的标签。这是因为break没有被包含在test程序块中。

   
           


本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u2/77727/showart_1342021.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP