夏里巴人
2015-07-10 13:12
package HelloWorld; public class demo1 { public static void main(String[] args) { // 创建对象,对象名为hello int arr[]={99,-23,64,91,119,52,92}; demo1 ss=new demo1(); ss.thr(arr,3); } public void thr(int arr[],int s) { for(int j=0;j<arr.length;j++) //由于我使用的版本不能导入Arrays,所以自己写了个排序使用 { for(int i=0;i<arr.length;i++) { int tmp; if(arr[i]<arr[j]) { tmp = arr[i]; arr[i] = arr[j]; arr[j] = tmp; } } } int t = 0; for(int i=0;i<arr.length;i++) { if(i>arr.length-1) break; // 如果需要输出的长度超过数组实际长度,则退出 if(arr[i]>=0 && arr[i]<=100){ System.out.print(arr[i]+" ");} t++; if(t > s) break; // 计算累计输出次数,此处不能明白为什么t>=s的时候,输出的个数是s-1个 } } }
应该在if后的大括号内部做累加 ...
找到原因了, 应该是先输出,然后再判断, 原来的代码, 如果有3个数字不符合条件,则输出的会更少
也就是第37行不理解,按照条件,当t>=s的时候是可以输出的,但是实际效果总是少输出一行
Java入门第一季(IDEA工具)升级版
1165172 学习 · 17581 问题
相似问题