首页 > 其他分享 >由于i++与++i的运算顺序不同而导致的死循环

由于i++与++i的运算顺序不同而导致的死循环

时间:2023-01-07 15:46:32浏览次数:30  
标签:运算 ++ param int curPage 死循环 nextPage

死循环的原因:
i++ 和 ++i的基本功能是相同的,都是对变量i进行自增1运算,从功能上讲相当于i =i+1 ;
两个的区别在于:
   int i=1,a=0;
   i++ 先运算在赋值​,例如 a = i++,先运算a=i,后运算i = i+1,所以结果是a == 1;
++i 先赋值在运算,例如 a = ++i,先运算i=i+1,后运算a = i,所以结果是a == 2。


public ResultEntity SyncDataXml(string interfaceCode, SyncDataParam param)
{
    int curPage = 1;
    int nextPage = 2;
    int totalPage = 2;
    if(param.Page != 0)
     {
         curPage = param.Page;
         nextPage = curPage++;// 死循环的原因
     }
    //递归
    if(nextPage <= totalPage)
     {
         var nextParam = new SyncDataParam
         {
             LastUpdateTime = param.LastUpdateTime,
             Page = nextPage
             };
         result = SyncDataXml(interfaceCode, nextParam);
     }
    return result;
}

public ResultEntity SyncDataXml(string interfaceCode, SyncDataParam param)
{
    int curPage = 1;
    int nextPage = 2;
    int totalPage = 2;
    if(param.Page != 0)
     {
         curPage = param.Page;
         nextPage = ++curPage;// 解决
     }
    //递归
    if(nextPage <= totalPage)
     {
         var nextParam = new SyncDataParam
         {
             LastUpdateTime = param.LastUpdateTime,
             Page = nextPage
             };
         result = SyncDataXml(interfaceCode, nextParam);
     }
    return result;
}

标签:运算,++,param,int,curPage,死循环,nextPage
From: https://www.cnblogs.com/qian-chang/p/death-cycle-caused-by-different-operations-of-i-and-i

相关文章

  • 纸张尺寸【第十三届蓝桥杯省赛C++C组】
    纸张尺寸在ISO国际标准中定义了\(A0\)纸张的大小为\(1189mm×841mm\),将\(A0\)纸沿长边对折后为\(A1\)纸,大小为\(841mm×594mm\),在对折的过程中长度直接取下整......
  • C++ - TCP/UDP网络编程
    前言socket编程分为TCP和UDP两个模块,其中TCP是可靠的、安全的,常用于发送文件等,而UDP是不可靠的、不安全的,常用作视频通话等。如下图:头文件与库:#include<WinSock2.h>......
  • 37_Java中的浮点数精确运算
    java中的BigDemcimal用于小数的精确运算构造方法:​ BigDecimal(Stringval)四则运算:​ add(BigDecimalb):加法​ subtract(BigDecimalb):减法​ multiply......
  • LLVM IR与C++ MUL函数代码
    LLVMIR与C++MUL函数代码使用LLVMIR写程序熟悉LLVMIR最好的办法就是使用IR写几个程序。在开始写之前,建议先花30分钟-1个小时再粗略阅读下官方手册(https://llvm.org/do......
  • C/C++学生信息管理系统[2023-01-06]
    C/C++学生信息管理系统[2023-01-06]题目6学生信息管理系统(任选)本系统要求设计一个学生信息管理系统,能够进行学生信息的录入、查找,要求考虑查找效率。本题目要求采用......
  • c++ 指针与引用
    引用很易与指针混淆,它们之间有三个主要的不同:不存在空引用。引用必须连接到一块合法的内存。一旦引用被初始化为一个对象,就不能被指向到另一个对象。指针可以在任何时候......
  • 数独游戏c++
    问题I:数独游戏时间限制:1.000Sec内存限制:128MB题目描述给你一个N×N的表格(3<N<10),在表格中事先已经填入了一部分的数字,现在请你的表格中空余的格子里填入1~N范围......
  • Dijkstra(迪杰斯特拉)算法C++实现&讲解
    Dijkstra迪杰斯特拉算法及C++实现Dijkstra算法是典型的最短路径路由算法,用来计算一个节点到其他所有节点的最短路径。算法的基本思想和流程是:1.初始化出发点到其它各点的......
  • C#运算符和值类型扫盲
    记录一些方便回顾的知识点。算术运算符加减乘除,取模%,自增自减。注意i++和++i在赋值时的区别,与C语言相同。a=z++;会先将z的值赋给a再自加1的运算。a=++z;会......
  • g++ 动态库的制作和使用
    动态库的生成代码//animal.hpp#ifndef_ANIMAL_HPP#define_ANIMAL_HPPtypedefunsignedintuint;classanimal{private:uintm_number;uintm_si......