java - 为什么运算符 && 不检查两个条件并终止程序测试
问题描述
问题的图片 我正在阅读 CSV 文件,并且我正在尝试测试只有当 Bit=1 时黄色才会出现在红色之后... && 运算符不应该检查这两个条件是否为真吗?为什么它到达黄色时停止运行但位是'1'而不是'0'
////-> Case 4 - Yellow Light can start only when TrafficBit =1 <-\\\\
private void Yellow_Light_Rule(){
if (trafficLights.isEmpty())
throw new IllegalArgumentException("Traffic lights list is empty");
String currentTrafficLightColor = trafficLines.get(0).split(",")[1];
String currentBitNum = trafficLines.get(0).split(",")[2];
for (String trafficLine : trafficLines) {
String[] trafficParts = trafficLine.split(",");
int cycleNum = Integer.parseInt(trafficParts[0]);
String trafficLightColor = trafficParts[1];
String trafficBit = (trafficParts[2]);
System.out.println("Traffic cycle:" + cycleNum + ", color:" + trafficLightColor + ", bit:" + trafficBit);
if (currentTrafficLightColor.equals(trafficLightColor))
continue;
if (currentTrafficLightColor.equals("Yellow") && currentBitNum.equals("0"))
break;
String nextTrafficLight = getNextTrafficLightCase4(currentTrafficLightColor);
String nextNextBit = getNextBitCase4(currentBitNum);
Assertions.assertEquals(nextTrafficLight, trafficLightColor, trafficLightColor+" Is a mismatch between expected and actual color");
Assertions.assertEquals(nextNextBit, trafficBit, trafficBit+" Is a mismatch between expected and actual bit");
currentTrafficLightColor = trafficLightColor;
currentBitNum = trafficBit;
}
}
private int getBitIndexCase4(String trafficBitNum){
for (int i = 0; i<trafficLines.size(); i++){
if (trafficLines.get(i).equals(trafficBitNum))
return i;
}
throw new IllegalArgumentException("Bit number '" + trafficBitNum + "' is not correct");
}
private String getNextBitCase4(String trafficBitNum){
int bitIndex = getBitIndexCase4(trafficBitNum) +1;
if (bitIndex >= trafficLines.size())
bitIndex = 0;
return trafficLines.get(bitIndex);
}
private int getTrafficIndexCase4(String trafficLightName) {
for (int i = 0; i < trafficLights.size(); i++) {
if (trafficLights.get(i).equals(trafficLightName))
return i;
}
throw new IllegalArgumentException("Traffic light name '" + trafficLightName + "' is not correct");
}
private String getNextTrafficLightCase4(String trafficLightName) {
int trafficIndex = getTrafficIndexCase4(trafficLightName) + 1;
if (trafficIndex >= trafficLights.size())
trafficIndex = 0;
return trafficLights.get(trafficIndex);
}
解决方案
推荐阅读
- jsf - JSF 使用 ui:repeat varStatus.index 作为数组索引
- html - 如何在字符后移动按钮:
- apache-flink - 无法在 Flink 集群上运行 PubSubSource
- android - “端口 53:地址已在使用中”当我运行 docker compose up 命令时出现 docker 错误
- python - Python selenium 提交表单的结果
- java - MyBatis LocalDateTimeTypeHandler 实现依赖于厂商转换
- android - 如何在 AGP 7.0.0 中设置 FlavorDimensions?
- python - 如何控制树莓派 pico Micro Python 的输出等级
- spotify - 如何使Spotify url提示打开Spotify应用程序,而不是打开网络应用程序?
- python - 如何用硒放大到pdf?