Browse Source

宋瑞-202506050301

main
Songrui 1 month ago
parent
commit
c5c301c474
  1. 54
      test/w2/SensorDataCleaner.java

54
test/w2/SensorDataCleaner.java

@ -0,0 +1,54 @@
/**
* 传感器数据清洗处理器
* 功能遍历传感器数组根据规则过滤异常数据并计算有效数据的平均值
*/
void main() {
// 传感器原始数据数组
int[] sensorData = {85, -5, 92, 0, 105, 999, 88, 76};
// 用于累计有效数据的总和
int sum = 0;
// 用于统计有效数据的个数
int count = 0;
IO.println("=== 传感器数据清洗开始 ===");
// 遍历传感器数据数组
for (int data : sensorData) {
// 情况 1: 检查是否为致命错误 (999 代表传感器硬件断开)
if (data == 999) {
IO.println("致命错误:传感器掉线,终止处理");
// 使用 break 立即终止整个循环
break;
}
// 情况 2: 检查数据是否在正常范围内 (1 到 100 之间,包含 1 和 100)
if (data >= 1 && data <= 100) {
// 数据有效,累加到总和并增加计数
sum += data;
count++;
IO.println("数据 [" + data + "] 有效,已计入总和");
}
// 情况 3: 数据无效 (0、负数,或大于 100 但不是 999)
else {
// 使用 continue 跳过当前循环,不执行后续代码
IO.println("警告:发现越界数据 [" + data + "],已跳过");
}
}
IO.println("=== 传感器数据清洗结束 ===");
// 循环结束后,根据有效数据个数处理最终结果
if (count > 0) {
// 有有效数据,计算平均值
// 注意:需要将 sum 强制转换为 float 或 double,避免整数除法导致精度丢失
double average = (double) sum / count;
IO.println("有效数据个数:" + count);
IO.println("有效数据总和:" + sum);
System.out.printf("有效数据平均值:%.2f%n", average);
} else {
// 没有任何有效数据
IO.println("无有效数据");
}
}
Loading…
Cancel
Save