要求打印一个菱形:
  *
 ***
*****
 ***
  *
我的程序编译没错误,就是打出来的不符合要求;不知道错在那里,菜鸟刚开始学,
程序写的很烂,还请高手不吝赐教,小弟先谢过了。
class LingXing{
static void paint(){
for(int i=0;i<5;i++){
if(i==2){              //第3行打印五个星
for(int j=0;j<5;j++){
System.out.println("*");
}
System.out.println("\n");
}
else if(i==1||i==3){   //2、4行打印三个星
    for(int j=0;j<5;j++){
    if(j!=0||j!=4)
    System.out.println("*");
    else
    System.out.println(" ");
    }
    System.out.println("\n");
}
    else if(i==0||i==4){   //1、5行打印一个星
     for(int j=0;j<5;j++){
     if(j==2)
     System.out.println("*");
     else
        System.out.println(" ");
    }System.out.println("\n");
  }
  }
}
public static void main(String args[]){
paint();
}

}

解决方案 »

  1.   

    1.把你的println全部换成print
    2.第12行if(j!=0 && j!=4)这句改成if(j!=0 && j!=4)
      

  2.   

    if(j!=0||j!=4) -->if(j!=0 && j!=4)
    ^_^
      

  3.   

    class LingXing 
    {
    static void paint() 
    {
    for(int i=0;i<5;i++) {
    if(i==2){ //第3行打印五个星
    for(int j=0;j<5;j++){
    System.out.print("*");
    }
    System.out.println("\n");
    }
    else if(i==1||i==3) { //2、4行打印三个星
    for(int j=0;j<5;j++) {
    if(j < 3)
    System.out.print("*");
    else
    System.out.print(" ");
    }
    System.out.println("\n");
    }
    else if(i==0||i==4) { //1、5行打印一个星
    for(int j=0;j<5;j++) {
    if(j < 1)
    System.out.print("*");
    else
    System.out.print(" ");
    }
    System.out.println("\n");
    }
    }
    }

    public static void main(String[] args) 
    {
    paint();
    }
    }按照LZ的思路改了一下,可以打出菱形了
    其实方法有很多,完全没必要这么麻烦……
      

  4.   

    晕,刚才看成三角形了这回是菱形了class LingXing 
    {
    static void paint() 
    {
    for(int i=0;i<5;i++) {
    if(i==2){ //第3行打印五个星
    for(int j=0;j<5;j++){
    System.out.print("*");
    }
    System.out.println("\n");
    }
    else if(i==1||i==3) { //2、4行打印三个星
    for(int j=0;j<5;j++) {
    if(j!=0 && j!=4)
    System.out.print("*");
    else
    System.out.print(" ");
    }
    System.out.println("\n");
    }
    else if(i==0||i==4) { //1、5行打印一个星
    for(int j=0;j<5;j++) {
    if(j == 2)
    System.out.print("*");
    else
    System.out.print(" ");
    }
    System.out.println("\n");
    }
    }
    }

    public static void main(String[] args) 
    {
    paint();
    }
    }
      

  5.   

    我用jsp做的,可以打印任意数量的菱行,n可以任选.<%@ page contentType="text/html;charset=UTF-8"%>
    <%!
    String kg(int n){//n个空格组成的字符串
    String xx="";
    for(int i=1;i<=n;i++){
    xx+=" ";
    }
    return xx;
    }String xx(int n){//n个*组成的字符串
    String xx="";
    for(int i=1;i<=n;i++){
    xx+="*";
    }
    return xx;
    }
    %>
    <%
    int n=5;//任一行的最多星星数量,此数可以改动为任意奇数for(int i=1;i<=(n/2);i++){
    String line=kg((n-2*i+1)/2)+xx(2*i-1);
    System.out.println(line);
    }
    System.out.println(xx(n));
    for(int i=(n/2);i>=1;i--){
    String line=kg((n-2*i+1)/2)+xx(2*i-1);
    System.out.println(line);
    }
    %>
      

  6.   

    再给一下类的版本class LingXing{static String kg(int n){//n个空格组成的字符串
    String xx="";
    for(int i=1;i<=n;i++){
    xx+=" ";
    }
    return xx;
    }static String xx(int n){//n个*组成的字符串
    String xx="";
    for(int i=1;i<=n;i++){
    xx+="*";
    }
    return xx;
    }static void paint(int n){
    for(int i=1;i<=(n/2);i++){
    String line=kg((n-2*i+1)/2)+xx(2*i-1);
    System.out.println(line);
    }
    System.out.println(xx(n));
    for(int i=(n/2);i>=1;i--){
    String line=kg((n-2*i+1)/2)+xx(2*i-1);
    System.out.println(line);
    }
    }public static void main(String args[]){
    int n=5;//任一行的最多星星数量,此数可以改动为任意奇数
    paint(n);
    }}
      

  7.   

    非常感谢pczhouji,按你的方法改过来就可以打印了,原来println打完就换行,我以为println和print是一样的。
      也谢谢楼上几位给出了另外版本源码的朋友,我读了也很有启发