Java自增程序是怎么运算的!

Java自增程序是怎么运算的!,第1张

i++调用了3次,所以i自增3次,最后是8。

m实际上是由5+6+7组成的,所以是18。

i++的意思是,先取i的值来使用,然后对i自增,因此上面三个i++中实际上使用的i的值是5,6,7。

++i的意思是,先自增i,再取自增后的i的值来使用,因此如果上面三个是++i,那么实际使用的值就是6,7,8。

一般编程中尽量避免这种代码写法,提高易读性和减少歧义。

给你个例子参考下:

public string GetAutoDocNo()

{

string DocNo = "AD"

string today = DateTime.Today.Date.ToString("yyyyMMdd", DateTimeFormatInfo.InvariantInfo)

DataSet DocDs = GetDataSet(" select * from News")

//初始化

if (DocDs.Tables[0].Rows.Count == 0)

{

DocNo += today + "101"

return DocNo

}

/***********************/

else if (DocDs.Tables[0].Rows.Count >0)

{

int count = 0

string oldDocNo = string.Empty

for (int i = 0i <DocDs.Tables[0].Rows.Counti++)

{

oldDocNo = DocDs.Tables[0].Rows[i]["NewsID"].ToString()

oldDocNo = oldDocNo.Substring(2, 8)

if (oldDocNo == today) count++

}

if (count == 0/*当天还没有单*/)

{

DocNo += today + "1001"//前面有1比较方便,没有1在后面做的时候要稍微再加几行代码

return DocNo

}

else if (count >0/*当天已经有单*/)

{

DocDs = GetDataSet("select MAX(CAST(SUBSTRING(NewsID,3,12) AS BIGINT)) as NewsID from News where

(SUBSTRING(NewsID,3,8))='" + today + "'")

string id = DocDs.Tables[0].Rows[0]["NewsId"].ToString()

string lastid = id.Substring(8, 3)

try

{

decimal lastidec = decimal.Parse(lastid)

lastidec += 1

return DocNo + today + (lastidec.ToString())

}

catch (Exception)

{

throw

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11503538.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-16
下一篇 2023-05-16

发表评论

登录后才能评论

评论列表(0条)

保存