A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 刘进朝 中级黑马   /  2012-9-20 10:07  /  1983 人查看  /  14 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

class Test
{
public static void main(String[] args)
{
  
  int count = 0;
  
  for(int x= 0;x<100;x++)
  {
   
   if(x%5==3)
   {
    count++;
   
   System.out.print("x="+x+",");
   
   }
   
   
  
  }
  System.out.println("count="+count);
}

}
/*
打印结果如下:
x=3,
x=8,
x=13,
x=18,
x=23,
x=28,
x=33,
x=38,
x=43,
x=48,
x=53,
x=58,
x=63,
x=68,
x=73,
x=78,
x=83,
x=88,
x=93,
x=98,
count=20
如何把这些数打印成 x=[3,8,13,18,23,28,33,38,43,48,53,58,63,68,73,78,83,88,93,98].形式的?
*/

14 个回复

倒序浏览
两种办法

第一种

public class Test2 {
        public static void main(String[] args) {

                int count = 0;
                System.out.print("x = [");
                for (int x = 0; x < 100; x++) {

                        if (x % 5 == 3) {
                                count++;
                                if(x<99)
                                        System.out.print( x + ",");
                                else
                                        System.out.print(x);

                        }

                }
                System.out.println("]");
                System.out.println("count=" + count);
        }

}


第二种

import java.util.ArrayList;
import java.util.List;

public class Test2 {
        public static void main(String[] args) {

                int count = 0;
                List l = new ArrayList();

                for (int x = 0; x < 100; x++) {

                        if (x % 5 == 3) {
                                count++;
                                l.add(x);

                        }

                }
                System.out.println(l);
                System.out.println("count=" + count);
        }

}




回复 使用道具 举报
  1. class Test {
  2.         public static void main(String[] args) {

  3.                 int count = 0;
  4.                 System.out.print("x=[");
  5.                 for (int x = 0; x < 100; x++) {

  6.                         if (x % 5 == 3) {
  7.                                 count++;
  8.                                 if (x < 97) {
  9.                                         System.out.print(x + ",");

  10.                                 } else
  11.                                         System.out.print(x+"]");

  12.                         }
  13.             
  14.                        
  15.                 }

  16.         }
  17. }
复制代码
}
  System.out.println("count="+count);
}

}
回复 使用道具 举报
刚才测试了一下,结果如下,但结果不怎么理想。

C:\Users\lyme\Desktop>javac Test.java
注: Test.java使用了未经检查或不安全的操作。
注: 有关详细信息, 请使用 -Xlint:unchecked 重新编译。

C:\Users\lyme\Desktop>javac Test.java

C:\Users\lyme\Desktop>java Test
x = [3,8,13,18,23,28,33,38,43,48,53,58,63,68,73,78,83,88,93,98,]
count=20

修改之后的代码如下,可以把98后面的","去掉:

public class Test {
        public static void main(String[] args) {

                int count = 0;
                System.out.print("x = [");
                for (int x = 0; x < 100; x++) {

                        if (x % 5 == 3) {
                                count++;
                                if(x<98)
                                        System.out.print( x + ",");
                                else
                                        System.out.print(x);

                        }

                }
                System.out.println("]");
                System.out.println("count=" + count);
        }

}

打印结果:
C:\Users\lyme\Desktop>javac Test.java

C:\Users\lyme\Desktop>java Test
x = [3,8,13,18,23,28,33,38,43,48,53,58,63,68,73,78,83,88,93,98]
count=20
回复 使用道具 举报
王陶成 发表于 2012-9-20 10:16
两种办法

第一种

刚才测试了一下,结果如下,但结果不怎么理想。

C:\Users\lyme\Desktop>javac Test.java
注: Test.java使用了未经检查或不安全的操作。
注: 有关详细信息, 请使用 -Xlint:unchecked 重新编译。

C:\Users\lyme\Desktop>javac Test.java

C:\Users\lyme\Desktop>java Test
x = [3,8,13,18,23,28,33,38,43,48,53,58,63,68,73,78,83,88,93,98,]
count=20

修改之后的代码如下,可以把98后面的","去掉:

public class Test {
        public static void main(String[] args) {

                int count = 0;
                System.out.print("x = [");
                for (int x = 0; x < 100; x++) {

                        if (x % 5 == 3) {
                                count++;
                                if(x<98)
                                        System.out.print( x + ",");
                                else
                                        System.out.print(x);

                        }

                }
                System.out.println("]");
                System.out.println("count=" + count);
        }

}

打印结果:
C:\Users\lyme\Desktop>javac Test.java

C:\Users\lyme\Desktop>java Test
x = [3,8,13,18,23,28,33,38,43,48,53,58,63,68,73,78,83,88,93,98]
count=20
回复 使用道具 举报
尤圣回 发表于 2012-9-20 10:19
}
  System.out.println("count="+count);
}

  if (x < 97) 中(94-98),都是可以的,但到93的时候,就会出现9398的情况。谢谢回复。
回复 使用道具 举报
问题已解决。
回复 使用道具 举报
  1. class Test {
  2.         public static void main(String[] args) {

  3.                 int count = 0;
  4.                 System.out.print("x=[");
  5.                 for (int x = 0; x < 100; x++) {
  6.                         
  7.                         if (x % 5 == 3) {
  8.                                 
  9.                                 count++;
  10.                                 if(x!=98)
  11.                                 System.out.print( x + ",");
  12.                                 else
  13.                                         System.out.println(x+"]");
  14.                                 }
  15.                 }
  16.                
  17.                 System.out.println("count=" + count);
  18.         }

  19. }
复制代码
小问题一枚
回复 使用道具 举报
严海荣 发表于 2012-9-20 10:42
小问题一枚

谢谢。收到。非常感谢解答。
回复 使用道具 举报
严海荣 发表于 2012-9-20 10:42
小问题一枚

如果x的范围不是100,而是x<2376呢?要求打印出同样的结果。
回复 使用道具 举报
也可以设置一个String 对象来接收,

最后一次性输出的时候去掉最后一个逗号就行了。

运行结果如下:

111.png (6.58 KB, 下载次数: 30)

111.png

2222.png (1.14 KB, 下载次数: 26)

2222.png
回复 使用道具 举报
非常感谢.
回复 使用道具 举报
本帖最后由 严海荣 于 2012-9-20 11:47 编辑
  1. class Test1 {
  2.         public static void main(String[] args) {

  3.                 int count = 0;
  4.                 System.out.print("x=[");
  5.                 for (int x = 0; x < 2376; x++) {
  6.                         
  7.                         if (x % 5 == 3) {
  8.                                 
  9.                                 count++;
  10.                                 if(x!=2373)
  11.                                 System.out.print( x + ",");
  12.                                 else
  13.                                         System.out.println(x+"]");
  14.                                 }
  15.                 }
  16.                
  17.                 System.out.println("count=" + count);
  18.         }

  19. }
复制代码
我是找到要打印的最后一个数,让它不要输出  x+","  让它输出 x+"]"
上面一个截字串的方法比我的要好,用substring从头截取到最后一个数,不要","  然后添加一个"]"
回复 使用道具 举报
这样就可以
public static void main(String[] args) {
                String arr="[";
                for(int i=3;i<100;i=i+5){
                        System.out.println(i);
                        arr+=i+",";
                }
                arr=arr.substring(0, arr.length()-1);
                arr=arr+"]";
                System.out.println(arr);
        }
回复 使用道具 举报
谢谢,问题已解决.
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马