程序风格的作用主要是使代码容易阅读。代码应该时清楚的和简单的-------具有直截了当的逻辑、自然的表达式、通行的语言使用方式、有意义的名字和有帮助作用的注释等,应该避免耍小聪明,绝不使用非正规的结构。 
下面的代码具有很多缺陷,请从风格的角度评论并改正下面各个代码片断: 
/*   return   SUCCESS   */ 
return   SUCCESS; ---------------------------------------------------------------------------------------- 
if   (!(block_id   <   actblks)   &brvbar; &brvbar;   !(block_id   >=   unblocks)) ----------------------------------------------------------------------------------------- 
int   count   =   0; 
while   (count   <   total)   { 
        count++; 
        if   (this.getName(count)   ==   nametable.userName())   { 
                        return   (true); 
                } 
} ------------------------------------------------------------------------------------------- 
i=   0; 
while(i   <=   n-1) 
        array[i++]   =   1.0; ----------------------计算n的阶乘--------------------------------------------------------------------- 
int   factorial(int   n)   

        int   fac; 
        fac   =   1; 
        while   (n--)   
                fac   *=   n; 
        return   fac; 
} -----------C函数,但是Java开发人员也可以做----------------------------------------- 
if   (i   >   j) 
        printf(“%d   is   greater   than   %d.\n”,   i,   j) 
else 
        printf(“%d   is   smaller   than   %d.\n”,   i,   j) --------------------------------------   C语言-------------------------------------------- 
#define   MAX(a,   b)     a >b?   a:b 

解决方案 »

  1.   

    /* return SUCCESS */
    return SUCCESS;                                                           不需要注释----------------------------------------------------------------------------------------
    if (!(block_id < actblks) &brvbar; &brvbar; !(block_id >= unblocks))-----------------------------------------------------------------------------------------
    int count = 0;
    while (count < total) {
    count++;
    if (this.getName(count) == nametable.userName()) {
    return (true);
    }
    }
                                                                   应该把==换成equals
    -------------------------------------------------------------------------------------------
    i= 0;
    while(i <= n-1)
    array[i++] = 1.0;
                                                                      循环放的不好
    ----------------------计算n的阶乘---------------------------------------------------------------------
    int factorial(int n)
    {
    int fac;
    fac = 1;
    while (n--)
    fac *= n;                                                   循环放的不好,语句没加括号
    return fac;
    }-----------C函数,但是Java开发人员也可以做-----------------------------------------
    if (i > j)
    printf(“%d is greater than %d.\n”, i, j)                             
    else
    printf(“%d is smaller than %d.\n”, i, j)-------------------------------------- C语言--------------------------------------------
    #define MAX(a, b) a >b? a:b
      

  2.   

    -----------C函数,但是Java开发人员也可以做---------------------------------------
    if   (i   >   j) 
            printf(“%d   is   greater   than   %d.\n”,   i,   j) 
    else 
            printf(“%d   is   smaller   than   %d.\n”,   i,   j)
    后面少分号了:
    if   (i   >   j) 
            printf(“%d   is   greater   than   %d.\n”,   i,   j);
    else 
            printf(“%d   is   smaller   than   %d.\n”,   i,   j);
    -------------------------------------- C语言--------------------------------------
    #define MAX(a, b) a >b? a:b
    应该这样写:
    #define MAX((a),(b)) (a)>(b)? (a):(b) 
    因为a,b可以是表达式不行!其他的看不出啊
      

  3.   

    明显逻辑错误,不是大于就是小于,那等于呢-----------C函数,但是Java开发人员也可以做---------------------------------------
    if   (i   >   j) 
            printf(“%d   is   greater   than   %d.\n”,   i,   j) 
    else 
            printf(“%d   is   smaller   than   %d.\n”,   i,   j)
    后面少分号了:
    if   (i   >   j) 
            printf(“%d   is   greater   than   %d.\n”,   i,   j);
    else 
            printf(“%d   is   smaller   than   %d.\n”,   i,   j);
    -------------------------------------- C语言--------------------------------------
      

  4.   

    /*   
    *return   SUCCESS  
    */ 
    return   SUCCESS; ---------------------------------------------------------------------------------------- 
    if   (
    !(block_id   <   actblks)   
    &
    brvbar; 
    &
    brvbar;   !(block_id   >=   unblocks)
    ) ----------------------------------------------------------------------------------------- 
    int   count   =   0; 
    while   (count   <   total)   

            count++; 
            if   (this.getName(count)   ==   nametable.userName())   
            { 
    return true; 
            } 
    } ------------------------------------------------------------------------------------------- 
    i=0; 
    while(i   <=   (n-1))
    {
            i++
            array[i]   =   1.0; 
    }----------------------计算n的阶乘--------------------------------------------------------------------- 
    int   factorial(int   n)   

            int   fac =   1; 
            while(n--) 
            {  
                    fac   *=   n; 
            }
            return   fac; 
    } -----------C函数,但是Java开发人员也可以做----------------------------------------- 
    if   (i   >   j)

            printf(“%d   is   greater   than   %d.\n”,   i,   j) ;
    }
    else 
    {
            printf(“%d   is   smaller   than   %d.\n”,   i,   j) ;
    }--------------------------------------   C语言-------------------------------------------- 
    #define MAX((a),(b)) (a)>(b)? (a):(b);
      

  5.   

    在Java中允许使用count做变量吗
      

  6.   

    不好意思我错了  是const
      

  7.   

    /* return SUCCESS */
    return SUCCESS;
    这个注释是多余的
    ----------------------------------------------------------------------------------------
    if (!(block_id < actblks) &brvbar; &brvbar; !(block_id >= unblocks)) if没有这种格式
    -----------------------------------------------------------------------------------------
    int count = 0;
    while (count < total) {
    count++;
    if (this.getName(count) == nametable.userName()) {
    return (true);
    }
    }
    在Java中比较相等应该用equals()方法
    -------------------------------------------------------------------------------------------
    i= 0;
    while(i <= n-1)
    array[i++] = 1.0;应该用Arrays.fill()
    ----------------------计算n的阶乘---------------------------------------------------------------------
    int factorial(int n)
    {
    int fac;
    fac = 1;
    while (n--)
    fac *= n;
    return fac;
    }错误,少乘一个n,并且Java中应该明确判断n是否大于零,如:while( n > 0 ) {
    fac *= n --;
    }-----------C函数,但是Java开发人员也可以做-----------------------------------------
    if (i > j)
    printf(“%d is greater than %d.\n”, i, j)
    else
    printf(“%d is smaller than %d.\n”, i, j)在printf(...)后缺了;
    -------------------------------------- C语言--------------------------------------------
    #define MAX(a, b) a >b? a:b 最好如下定义:#define MAX(a,b) ((a) > (b))?a:b并且在C中用宏造成错误的可能性较大,尽量不用
      

  8.   

    printf("%d is %s than %d", (i>j)? "greater":"smaller");
      

  9.   

    刚建立了一个软件开发技术和休闲交流的QQ群44540509,java,.net,c/c++,php,linux,unix、软件测试等技术、休闲讨论区,欢迎大家加入!
      

  10.   

    printf("%d is %s than %d", i, (i>j)? "greater":"smaller", j);
      

  11.   

    mail_ricklee(NickLee):
    不好意思,完全不对。
      

  12.   

    格式有点乱了,重新贴一下:/* return SUCCESS */ 
    return SUCCESS; ---------------------------------------------------------------------------------------- 
    if (!(block_id < actblks) || !(block_id >= unblocks)) ------------------Java语言----------------------------------------------------------------------- 
    int count = 0; 
    while (count < total) { 
        count++; 
        if (this.getName(count) == nametable.userName()) { 
            return (true); 
          } 
    } ----------------------初始化一个数组,数组大小为n--------------------------------------------------------------------- 
    i= 0; 
    while(i <= n-1) 
        array[i++] = 1.0; ----------------------计算n的阶乘--------------------------------------------------------------------- 
    int factorial(int n) 

        int fac; 
        fac = 1; 
        while (n-- > 0) 
          fac *= n; 
        return fac; 
    } ---------------------------------------------------- 
    if (i > j) 
        printf(“%d is greater than %d.\n”, i, j);
    else 
        printf(“%d is smaller than %d.\n”, i, j);-------------------------------------- C语言-------------------------------------------- 
    #define MAX(a, b)   a >b? a:b
      

  13.   

    return   SUCCESS; ---------------------------------------------------------------------------------------- 
    if   (!(block_id   <   actblks)   &brvbar; &brvbar;   !(block_id   >=   unblocks)) 
    错误语法----------------------------------------------------------------------------------------- 
    for ( int i = 0; i<total; i ++ )
            if   (this.getName(i).equals(nametable.userName()))   { 
                            return   true; 
                    } 
    } ------------------------------------------------------------------------------------------- 
    i=   0; 
    while(i   <   n) 
            array[i++]   =   1.0; ----------------------计算n的阶乘--------------------------------------------------------------------- 
    int   factorial(int   n)   

            int   fac; 
            fac   =   1; 
            while   (n--)   
                    fac   *=   ++fac; 
            return   fac; 
    } -----------C函数,但是Java开发人员也可以做----------------------------------------- 
    if   (i   >   j) 
            printf(“%d   is   greater   than   %d.\n”,   i,   j); 
    else if ( i < j)
            printf(“%d   is   smaller   than   %d.\n”,   i,   j); 
    else
            printf(“%d   is   equal with  %d.\n”,   i,   j); 
    --------------------------------------   C语言-------------------------------------------- 
    #define   MAX(a,   b)     (a) >(b)?   a:b
      

  14.   

    /* return SUCCESS */
    return SUCCESS;                                                           不需要注释----------------------------------------------------------------------------------------
    if (!(block_id < actblks) &brvbar; &brvbar; !(block_id >= unblocks))-----------------------------------------------------------------------------------------
    int count = 0;
    while (count < total) {
    count++;
    if (this.getName(count) == nametable.userName()) {
    return (true);
    }
    }
                                                                   应该把==换成equals
    -------------------------------------------------------------------------------------------
    i= 0;
    while(i <= n-1)
    array[i++] = 1.0;
                                                                      用for循环简单明了
    ----------------------计算n的阶乘---------------------------------------------------------------------
    int factorial(int n)
    {
    int fac;
    fac = 1;
    while (n--)
    fac *= n;                                             循环用的不好,for循环即可
    return fac;                                           没有考虑数据溢出问题, 应                                                     该使用数组或者字符串存储阶乘的结果    
    }-----------C函数,但是Java开发人员也可以做-----------------------------------------
    if (i > j)
    printf(“%d is greater than %d.\n”, i, j)                             
    else
    printf(“%d is smaller than %d.\n”, i, j)  //没有考虑相等-------------------------------------- C语言--------------------------------------------
    #define MAX(a, b) a >b? a:b        //a,b可以为表达式,且结果外再加个括号,否则用在表
                                  //达式可能会出错,#define MAX(a,b) ((a)>(b)?(a):(b))
      

  15.   

    if ((block_id >= actblks) || (block_id < unblocks)) 
      

  16.   


    return SUCCESS; ---------------------------------------------------------------------------------------- 
    if ((block_id >= actblks) && (block_id < unblocks)) ------------------Java语言----------------------------------------------------------------------- 
    int count = 0; 
    while (count < total) { 
        count++; 
        if (this.getName(count) equals nametable.userName()) { 
            return  true; 
        } 
    } ----------------------初始化一个数组,数组大小为n--------------------------------------------------------------------- 
    int i= 0; 
    while(i <= (n-1)) 
        array[i++] = 1.0; ----------------------计算n的阶乘--------------------------------------------------------------------- 
    int factorial(int n) 

        int fac; 
        fac = 1; 
        while ((n-1) > 0){ 
          fac *= n; 
          n--;
        }
        return fac; 
    } ---------------------------------------------------- 
    if (i > j) 
        printf(“%d is greater than %d.\n”, i , j);
    else if( i < j)
        printf(“%d is smaller than %d.\n”, i, j);-------------------------------------- C语言-------------------------------------------- 
    #define MAX(a, b)   (a) >(b)? (a):(b)