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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© air 中级黑马   /  2013-12-19 23:53  /  1298 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

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

评分

参与人数 1技术分 +1 收起 理由
乔兵 + 1

查看全部评分

7 个回复

倒序浏览
无非是个位或者十位是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. }
复制代码
回复 使用道具 举报
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:14
板凳
本帖最后由 air 于 2013-12-20 00:52 编辑
冯晓骏 发表于 2013-12-20 00:05
无非是个位或者十位是7的情况

话说视频里我怎么没看到有continue的详细介绍啊
我这代码有点杀鸡用牛刀的感觉.........
回复 使用道具 举报
air 发表于 2013-12-20 00:49
话说视频里我怎么没看到有continue的详细介绍啊
我这代码有点杀鸡用牛刀的感觉.........
...

有的,你找找
回复 使用道具 举报
学习学习!
回复 使用道具 举报
松毛 高级黑马 2013-12-20 08:19:01
7#
  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:41
8#
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);
     }
}
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马