pk_monkey 2017-09-16 07:19 采纳率: 100%
浏览 7358
已采纳

java i=i+2与i+=2的区别

import java.util.*;
public class lianxi {

public static void main(String[] args) {
    int N=3;
    int[][] a = new int[N][N];

    int i=0;   //行
    int j=N/2; //列
    a[i][j]=1;

    for(int n=2;n<=N*N;n++)
    {
        //往45度方向放下一个数字
        i--;
        j++;            

        if(i<0 && j>=N)//两边越界,//行和列都越界
        {
            i=i+2;
            j--;
        }
        else if(i<0)//行越界
        {
            i=N-1;
        }
        else if(j>=N) //列越界
        {
            j=0;
        }
        else if(a[i][j]!=0)  //有冲突
        {
            i=i+2;
            j--;
        }

        a[i][j]=n;
    }

    //输出
    for(i=0;i<N;i++)
    {
        for(j=0;j<N;j++)
        {
            System.out.print(a[i][j] + "\t");
        }
        System.out.println();
    }
        }

}
结果是:
8 1 6

3 5 7

4 9 2

import java.util.*;
public class lianxi2 {

public static void main(String[] args) {
    int N = 3;
    int[][] a = new int[N][N];
    int i = 0;
    int j = N/2;
    a[i][j] = 1;
    for(int n=2;n<=N*N;n++){
            i--;
            j++;
            if(i<0 && j>=N){
                i+=2;
                j--;
            }
            else if(i<0){
                i=N-1;
            }
            else if(j>=N){
                j=0;
            }
            else if(a[i][j]!=0){
                i+=2;
                i--;
            }
            a[i][j]=n;
            }
    for(i=0;i<N;i++){
        for(j=0;j<N;j++){
            System.out.print(a[i][j]+"\t");
            }
            System.out.println();
        }
    }

}
结果是:
7 1 5

3 4 6

0 8 9

  • 写回答

7条回答

  • Little_小R 2017-09-16 12:06
    关注

    实际运用中没有区别,在运行效率中是有区别的,i=i+2操作中,先是读取左边i的地址,然后再次读取右边i的地址,i加2,然后把它赋值给左边的i;i+=2是只读一次i的地址,然后加2,再赋值到i。还有,你的代码上下有区别

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(6条)

报告相同问题?

悬赏问题

  • ¥15 请教:如何用postman调用本地虚拟机区块链接上的合约?
  • ¥15 为什么使用javacv转封装rtsp为rtmp时出现如下问题:[h264 @ 000000004faf7500]no frame?
  • ¥15 乘性高斯噪声在深度学习网络中的应用
  • ¥15 运筹学排序问题中的在线排序
  • ¥15 关于docker部署flink集成hadoop的yarn,请教个问题 flink启动yarn-session.sh连不上hadoop,这个整了好几天一直不行,求帮忙看一下怎么解决
  • ¥15 深度学习根据CNN网络模型,搭建BP模型并训练MNIST数据集
  • ¥15 C++ 头文件/宏冲突问题解决
  • ¥15 用comsol模拟大气湍流通过底部加热(温度不同)的腔体
  • ¥50 安卓adb backup备份子用户应用数据失败
  • ¥20 有人能用聚类分析帮我分析一下文本内容嘛