You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

C#中%运算符的含义、用法及示例解析技术问询

理解C#中的%取模运算符

嘿,完全理解刚接触C#时对这个运算符的困惑——我当初也盯着%挠过脑袋呢!其实它叫取模运算符,核心作用就是计算两个数相除后的余数。咱们结合你给出的例子一步步拆解,就好懂多了:

第一个例子:Unity中每10帧执行一次代码

void Update() { 
    frames++; 
    if (frames % 10 == 0) { 
        // 这里的代码每10帧执行一次
    } 
}

这里frames每次调用Update都会加1,当frames % 10 == 0时,说明frames刚好是10的整数倍(10、20、30...)——因为10除以10余数是0,20除以10余数也是0,以此类推。这个判断就帮你精准地每10帧触发一次目标代码。

第二个例子:游戏时间计算

// time = 每秒加1的总秒数
int seconds = (time % 60); 
int minutes = (time / 60) % 60; 
int hours = (time / 3600) % 24; 
// int days = (time / 86400) % 365;

咱们逐个拆解逻辑:

  • time % 60:总秒数除以60的余数,就是当前分钟内的秒数(比如总秒数是75,75%60=15,对应1分15秒里的15秒)。
  • (time / 60) % 60:先把总秒数除以60得到总分钟数,再对60取余,得到当前小时内的分钟数(比如总秒数是3700,3700/60≈61分钟,61%60=1,对应1小时1分钟里的1分钟)。
  • (time / 3600) % 24:3600是1小时的秒数,先转成总小时数,再对24取余,得到当天的小时数(比如总秒数是90000,90000/3600=25小时,25%24=1,对应1天1小时里的1小时)。

更直观的理解方式

你可以把取模运算直接想成“除法后剩下的数”:

  • 7 % 3 = 1(7除以3商2,剩下1)
  • 15 % 4 = 3(15除以4商3,剩下3)
  • 8 % 2 = 0(8刚好能被2整除,余数为0)

只要记住这个核心:a % b就是求a除以b后剩下的余数,你就能轻松把它套用在各种计数、周期判断的场景里啦!

内容的提问来源于stack exchange,提问作者David

火山引擎 最新活动