免费注册 查看新帖 |

Chinaunix

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

java语句 [复制链接]

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

                                   Java中语句有空语句,表达式语句,块语句,标号语句,选择语句,循环语句,跳转语句,同步语句,例外语句。
1)空语句:在操作系统中比较常用。这里举个不太恰当的例子
    class NoBody {
              public static void main(String [ ] args){
                    int i=1,j=5;
                    while(++i<--j)  ;
          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){
                           Statement;
                     }
                     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<9; 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/77840/showart_1361394.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP