public class Testt{
public static void main(String[]args){
int a[]={32,54,65,3,5,1,75,8,545}
for(int i=0i<a.lengthi++){
for(int j=i+1j<a.lengthj++){
if(a[i]>a[j]){
int k=a[i]
a[i]=a[j]
a[j]=k
}
}
}
System.out.println(Arrays.toString(a))
}
}
//把输出放到FOR循坏外面,不然每循环一次就会输出一次。
//思路输出--交换顺序,
在每次输出后那上次输出的数组
值依次向下移动一次,最后的一个移动到最前面去,
int
a[]={1,2,3,4,5,6}
//k是你想输出的行数k<6就是输出6行
for(int
k=0k<6k++){
for(int
i=0i<a.lengthi++){
System.out.print(a[i]+"
")
}
//把数组完整输出一次后换行
System.out.println()
//交换顺序
//定义临时变量temp
并且初始值为数组的最后一个元素
int
temp=a[a.length-1]
for(int
i=a.length-1i>0i--){
//一次后面的一个元素值等于前面一个
第一个元素不在其中
a[i]=a[i-1]
}
//给第一个元素赋值
a[0]=temp
}
java中有两种常用的输出:System.out.printstring)和 System.out.println( string ),区别在于后者输出字符串后会自动换到下一行,而前者不会。
你的程序,在内层for循环中,没有if语句判断是否需要换行,所以输入语句为非条件的,也就是说,如果用print就都是横的,如果用println就都是竖的。
修改方法:
添加if语句。(从原文中 if(Value[j]==null){ 开始替换 )
if ( Value[j] != null ) {if (j == Value.length - 1 || Value[j+1] == null) {
System.out.println(Value[j]+"\t\t")
}
else {
System.out.print(Value[j]+"\t\t")
}
}
else {
break
}
如果有什么没有表述清楚的,欢迎追问。