20200802 千锤百炼软工人第二十八天

今天改了一个错误

这个错误是一个关于数组越界的问题

我的朋友一开始写的是这个

   public static int dayinmonth(int month,int year) {
      int months[]= {31,29,31,30,31,30,31,31,30,31,30,31};
      if(isLeapYear(year))
       months[1]=29;
      else
       months[1]=28;
      return months[month-1];
     }

但是在编译后他是认为没有错误的

但是在实际上运行时

是有很大风险的

在这个程序中

return是一个关键

return 之后是months数组

这个数组的长度是12

但是如果这个局部变量month是一个负数

或者是其他的数

反正没有在这个长度为12的数组范围之内

这就有了风险

所以之后直接就改成了另一种代码

来替代这个功能

进而避免了着个数组越界的问题

 

posted @   黄某人233  阅读(60)  评论(0编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)
· AI 智能体引爆开源社区「GitHub 热点速览」
点击右上角即可分享
微信分享提示