黑马程序员技术交流社区

标题: 筛选代码优化 [打印本页]

作者: air    时间: 2013-12-19 23:53
标题: 筛选代码优化
本帖最后由 air 于 2013-12-19 23:55 编辑
  1. package com.itheima;
  2. import java.util.*;
  3. //5.编写程序,打印1到100之内的整数,但数字中包含7的要跳过,例如:17、27、71、72
  4. class Test5
  5. {
  6. public static void main(String args[])
  7. {              
  8.   ArrayList<String> al = new ArrayList<String>();  
  9.   int x=0;
  10.   while(x<100)  
  11.   {  
  12.    x++;
  13.    if(!(String.valueOf(x).contains("7")))
  14.    al.add(String.valueOf(x));   
  15.   }  
  16.   Iterator<String> it = al.iterator();
  17.   while(it.hasNext())
  18.   {
  19.    System.out.println(it.next());
  20.    
  21.   }

  22. }
  23. }                                                                                                                  
复制代码
这其实是我的基础测试题.但是里面的题目毕向东老师视频里没有讲到,
里面都是我自己想出来的,编译通过.符合题目.但是似乎有点不对劲.
有同学给我这代码优化一下,用更初级的方法或者更简单的方式改一下吗?


作者: 冯晓骏    时间: 2013-12-20 00:05
无非是个位或者十位是7的情况
  1. class Test
  2. {
  3.         public static void main(String[] args)
  4.         {
  5.                 for(int i = 1 ; i <= 100 ; i ++){
  6.                         if(i % 10 == 7 || i / 10 == 7)
  7.                                 continue;
  8.                         System.out.println(i);
  9.                 }
  10.         }
  11. }
复制代码

作者: 刘松703    时间: 2013-12-20 00:14
for(int i = 1 ; i <= 100 ; i ++){

                        if(i % 10 == 7 || i / 10 == 7)

                                continue;

                        System.out.println(i);

                }


作者: air    时间: 2013-12-20 00:49
本帖最后由 air 于 2013-12-20 00:52 编辑
冯晓骏 发表于 2013-12-20 00:05
无非是个位或者十位是7的情况

话说视频里我怎么没看到有continue的详细介绍啊
我这代码有点杀鸡用牛刀的感觉.........

作者: 冯晓骏    时间: 2013-12-20 01:22
air 发表于 2013-12-20 00:49
话说视频里我怎么没看到有continue的详细介绍啊
我这代码有点杀鸡用牛刀的感觉.........
...

有的,你找找
作者: 松毛    时间: 2013-12-20 08:19
  1. public class Test6 {
  2.         public static void main(String[] args){
  3.                 for(int x=1;x<101;x++){ //遍历1~100的整数;
  4.                         if(x%10!=7 && x/10!=7){ //当该整数模10且除以10都不等于7时输出,即遍历输出的数字中都不会含有7;
  5.                                 System.out.print(x+" ");
  6.                         }
  7.                 }
  8.         }
  9. }
复制代码

作者: 弘一    时间: 2013-12-20 09:41
for(int x = 1;x<=100;x++)
{
     //判断1对x余10来判断各位上是否7,使用&&符号当左边为false时,不用判断右边,增加效率。x/10是判断十位上是否为7
     if(x%10 == 7 && x/10 == 7)
     {
            System.out.println(x);
     }
}




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2