Board logo

标题: [问题求助] 求改写PowerShell的while语句 [打印本页]

作者: 小白龙    时间: 2023-4-4 11:42     标题: 求改写PowerShell的while语句

我想将下面的C++语句改成powershell循环语句, 求路过大佬指导, 多谢
对 ++iLineNumCount 这行不太懂, 怎样改成通俗一些的形式
  1. long iLineNum
  2. long iLineNumCount=1
  3. while(iLineNum != 0)
  4. {
  5.     ++iLineNumCount
  6.     iLineNum /= 10
  7. }
复制代码

作者: jyswjjgdwtdtj    时间: 2023-4-4 12:43

ps有自增吧 网上一搜就有啊
作者: 小白龙    时间: 2023-4-4 13:24

回复 3# jyswjjgdwtdtj

感谢关注,
自增不太懂, 后面又有一个 /= 直接晕了

期待路过的高手, 改一个更通俗易懂的写法
作者: jyswjjgdwtdtj    时间: 2023-4-4 14:34

回复 4# 小白龙
  1. 以js为例吧(其他的大差不差)
  2. [x++] = [++x] = [x=x+1]
  3. [x--] = [--x] = [x=x-1]
  4. [y=x++] = [x=x+1;y=x]
  5. [y=++x]=[y=x;x=x+1]
复制代码

作者: jyswjjgdwtdtj    时间: 2023-4-5 07:09

回复 4# 小白龙


x+=y即x=x+y
x-=y即x=x-y
x/=y即x=x/y
x*=y即x=x*y
作者: 小白龙    时间: 2023-4-5 19:52

本帖最后由 小白龙 于 2023-4-5 20:13 编辑

回复 5# jyswjjgdwtdtj
最上面的语句, 我理解起来确实有点难度, 现在还是看不懂

求路过大佬, 分解一下

完整代码如下:
它主要的作用是控制一些文本编辑器左侧的 行号栏 的宽度, 例如 只有1行文本时, 就是1个数字的宽度, 当有大于9行文本时, 就是两个数字的宽度, 当有大于99行文本时, 就是3个数字的宽度,以此类推
效果如下图
  1. void UpdateLineNumberWidth(void)
  2. {
  3. //start 显示行号
  4. long  iLineMarginWidthNow;
  5. long  iLineMarginWidthFit;
  6. long iLineNum = SendMessage( SCI_GETLINECOUNT, 0, 0 );
  7. long iLineNumCount = 1;
  8. while( iLineNum != 0 )
  9. {
  10. ++iLineNumCount;
  11. iLineNum /= 10;
  12. }
  13. iLineMarginWidthNow = SendMessage( SCI_GETMARGINWIDTHN, 0, 0 );
  14. long charWidth = SendMessage( SCI_TEXTWIDTH, STYLE_LINENUMBER, (LPARAM)("9") );
  15. iLineMarginWidthFit = charWidth * iLineNumCount;
  16. if ( iLineMarginWidthNow != iLineMarginWidthFit )
  17. {
  18. SendMessage( SCI_SETMARGINWIDTHN, 0, iLineMarginWidthFit );
  19. }
  20. //end of 显示行号
  21. }
复制代码

作者: jyswjjgdwtdtj    时间: 2023-4-5 21:12

回复 6# 小白龙


    不是 这怎么会有难度呢?
作者: jyswjjgdwtdtj    时间: 2023-4-5 21:15

那我帮你改一下吧
while(true){
if(iLineNum==0){
break;
}
iLineNumCount=iLineNumCount+1;
iLineNum=iLineNum/10
}

这要是还看不懂那么我也没办法了




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2