You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

40 lines
1.8 KiB

public class DataCleaner {
public static void main(String[] args) {
int[] sensorData = {85, -5, 92, 0, 105, 999, 88, 76};
int validSum = 0; // 有效数据总和
int validCount = 0; // 有效数据个数
// 遍历整个传感器数据数组
for (int value : sensorData) {
// 1. 先检查是否是致命错误 999(传感器掉线)
if (value == 999) {
System.out.println("致命错误:传感器掉线,终止处理");
break; // 立即终止整个循环
}
// 2. 检查数据是否在正常范围 1 到 100 之间(包含)
if (value >= 1 && value <= 100) {
// 有效数据:累加总和,增加计数
validSum += value;
validCount++;
// 继续下一次循环(这里可加可不加 continue,因为后面没有逻辑了)
} else {
// 3. 处理无效数据:0、负数、大于100(但不是999,因为999已经处理过了)
// 打印警告信息
System.out.println("警告:发现越界数据 [" + value + "],已跳过");
// 使用 continue 跳过本次循环(剩余代码不再执行,这里其实可以省略,因为后面没有语句了)
continue;
}
}
// 循环结束后,根据有效数据个数输出结果
if (validCount > 0) {
// 计算平均值:注意避免整数除法,将其中一个操作数转为 double
double average = (double) validSum / validCount;
System.out.println("有效数据的平均值:" + average);
} else {
System.out.println("无有效数据");
}
}
}