问题描述
- 帮我解释一下最后那里为什么输出有0
-
package test8;public class 输出 {
public static void main(String[] args) {
int[] array = new int[] { 1, 3, -1, 5, -2 };
System.out.println("原数组为: ");
for (int i = 0; i < array.length; i++) {
System.out.print(array[i] + " ");
}
System.out.println("n变0组后: ");
for (int i = 0; i < array.length; i++) {
if (array[i] < 0) {
array[i] = 0;
continue;
}
System.out.print(array[i] + " ");
}
// 注意为什么这里加continue却不会显示有0// -2,5,-1,3,1 System.out.println("n逆序后数组为: "); for (int i = array.length - 1; i >= 0; i--) { if (array[i] < 0) { array[i] = 0; continue; } System.out.print(array[i] + " "); } // 注意为什么这里却又有显示有0
解决方案
你这个应该是continue之后,循环没有执行到输出把。。。
解决方案二:
加了continue意味着只要满足前面数组中的数小于0,数据就会变成0,同时不再执行continue下面的代码
解决方案三:
if (array[i] < 0) {
array[i] = 0;
continue;
}
System.out.print(array[i] + " ");//continue之后,这句并没有执行到,没输出0值
//==========================================
for (int i = array.length - 1; i >= 0; i--) {
if (array[i] < 0) {
array[i] = 0;
continue;
}
System.out.print(array[i] + " ");
}//这里效果跟上面一样样,不会有0值,有的话估计是你想错了或者看错了/ok
解决方案四:
break、continue、return之间的区别与联系 在软件开发过程中,逻辑清晰是非常之重要的。 代码的规范也是非常重要的。往往细节决定成败。在编写代码的时候,一定要理解语言的作用以及使用的方法和场景。下面来介绍一下break、continue、return三者的区别和联系。
1. break :
(1).结束当前整个循环,执行当前循环下边的语句。忽略循环体中任何其它语句和循环条件测试。 (2).只能跳出一层循环,如果你的循环是嵌套循环,那么你需要按照你嵌套的层次,逐步使用break来跳出。逐层判断,逐步跳出.break在循环体内,强行结束循环的执行,也就是结束整个循环过程,不在判断执行循环的条件是否成立,直接转向循环语句下面的语句。 (4).当break出现在循环体中的switch语句体内时,其作用只是跳出该switch语句体。 总的来说:就近原则,结束当前的整个循环。
2. return:
(1).return 从当前的方法中退出,返回到该调用的方法的语句处,继续执行。 (2).return 返回一个值给调用该方法的语句,返回值的数据类型必须与方法的声明中的返回值的类型一致。 (3). return后面也可以不带参数,不带参数就是返回空,其实主要目的就是用于想中断函数执行,返回调用函数处。
3. continue:
(1).终止本次循环的执行,即跳过当前这次循环中continue语句后尚未执行的语句,接着进行下一次循环条件的判断。 (2).结束当前循环,进行下一次的循环判断。 (3).终止当前的循环过程,但他并不跳出循环,而是继续往下判断循环条件执行语句.他只能结束循环中的一次过程,但不能终止循环继续进行.