1 changed files with 54 additions and 0 deletions
@ -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…
Reference in new issue