叨叨两句
- 很开心!
- 也很紧迫!
题22:多个状态轮流切换
题目描述
书写一个类,类名为Itheima;
类中有一个方法,方法名sum67;
有一个整型数组,返回数组中的数字的总和,如果数组含有数6和7
那么忽略不计入从6开始并延伸到有7的数字段,7后面的数字需要参与运算(每6个将跟随至少一个7)。
返回0表示没有数字。
提示
方法调用 | 期望值 |
---|---|
sum67([1,2,2]) | 5 |
sum67([1,2,2,6,99,99,7]) | 5 |
sum67([1,1,6,7,2]) | 4 |
public class Itheima {
public int sum67(int[] arr){
if(arr.length == 0){
return 0;
}
if(arr.length == 1){
return arr[0];
}
int sum = 0;
boolean flag = true;//标识累加状态切换(flag=true累加=false不累加)
boolean flag67 = true; //标识判断条件的切换(flag67 = true判断是否是6
//flag67 = false判断是否是7)
for (int i = 0; i < arr.length; i++) {
if(arr[i] == 6 && flag67){
flag = false;
flag67 = false;
}
if(arr[i] == 7 && !flag67){
flag = true;
flag67 = true;
sum -= 7;//将本次累加不该计入结果的7减去
}
if(flag){
sum += arr[i];
}
}
return sum;
}
}
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。