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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

5黑马币
分析以下需求,并用代码实现:
        (1)打印1到100之内的整数,但数字中包含9的要跳过
        (2)每行输出5个满足条件的数,之间用空格分隔
        (3)如:1 2 3 4 5



/*
                1,输出1到100每行5个,使用for语句嵌套
                2,包括9的跳过,使用continue
                3,用空格分隔,使用"\t"
*/
class R1{
        public static void main(String[] args) {
                for (int x = 1; x <100 ; x++ ){
                        for (int y = 1; y <=5 ; y++ ){
                                if (x %10 == 9 || x / 10 ==9){
                                        continue;
                                }
                                System.out.print("x = "+ (x++)+ "");
                        }
                        System.out.println();
                }
        }
}



请问大神,我这个怎改进一下??才能成立.就用FOR FOR IF嵌套 这样

最佳答案

查看完整内容

public static void printTest1(int n) { int count = 0; for (int i=1; i

20 个回复

倒序浏览
public static void printTest1(int n) {

                int count = 0;

                for (int i=1; i<=100; i++) {

                        if (i % 10 != n & i / 10 != n) {
                                count++;
                                System.out.print(i + "\t");
                                if (count % 5 == 0) {
                                        System.out.println();
                                }
                        }

                }
        }
回复 使用道具 举报
class Demo1 {
         public static void main(String[] args) {
                         int count = 0;
                 for (int x = 1; x <100 ; x++ ){
                                                 if (x %10 == 9 || x / 10 ==9){
                                                                 continue;
                                                 }
                                                 System.out.print("x = "+ x);
                                                 count++;
                                                 if (count == 5) {
                                                         count = 0;
                                                         System.out.println();
                                                 }   
                 }
         }
}
回复 使用道具 举报
class Demo1 {
         public static void main(String[] args) {
                 for (int x = 1; x <100 ; x++ ){
                                         if (x %10 == 9 || x / 10 ==9){
                                                         continue;
                                         }
                                         for(int y = 0; y < 5; y++) {
                                                         System.out.print("x = "+ x++);
                                         }       
                                                         System.out.println();
                 }
         }
}
刚刚没看到要用for嵌套
回复 使用道具 举报
Fireflies 发表于 2016-6-2 22:39
class Demo1 {
         public static void main(String[] args) {
                 for (int x = 1; x  ...

for嵌套还麻烦一些,我这个是错的
回复 使用道具 举报
package test0602;

import java.util.ArrayList;
import java.util.Iterator;

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

                ArrayList<Integer> list = new ArrayList<>();
                addNumber(list);
                for (int i = 0; i < list.size(); i++) {
                        if (list.get(i).toString().contains("7")) {
                                list.remove(i--);
                        }
                }
                System.out.println(list);
                /*
                 * Iterator<Integer> itr = list.iterator(); while (itr.hasNext()) { if
                 * (String.valueOf(itr.next()).contains("7")) { itr.remove(); }
                 *
                 * }
                 */
                int count=0;
                for (int i = 0; i < list.size(); i++) {
                       
                        System.out.print(list.get(i) + "  ");
                        count++;
                        if(count==5){
                        System.out.println();
                        count=0;
                }}
        }

        private static void addNumber(ArrayList<Integer> list) {
                for (int i = 0; i < 100; i++) {
                        list.add(i + 1);
                }
        }

}
回复 使用道具 举报
本帖最后由 土菠萝 于 2016-6-3 14:58 编辑

看不看得懂,就看你了
/**
* 这是一个遇见9就死的游戏
* @author tuboluo
*
*/
public class JiuDie {
        public static void main(String[] args) {
                int k = 0;
                for(int i=1; i<100; i++){
                        if(!haveJiu(String.valueOf(i))){
                                System.out.print(i+" ");
                                k++;
                                if(k%5==0)System.out.println("");
                        }
                }
        }
        public static boolean haveJiu(String str){
                return str.contains("9");
        }
}
你的代码可以改成这样,不用两个for循环,你可以看看
        int y =0;
        for (int x = 1; x <100 ; x++ ){
            if (x %10 == 9 || x / 10 ==9){
                    continue;
            }
            System.out.print("x = "+ x+ "");
            y++;
            if(y%5==0)System.out.println("");
        }

点评

修改了你的代码后,好像你的代码是最快速的了!去掉一重for之后,比我原来那个快了好多!  发表于 2016-6-3 15:01
回复 使用道具 举报
  1.         for(int i=0;i<100;i++){
  2.                 if(i%9==0||i/10==9){
  3.                         continue;
  4.                 }if(i%5==0){
  5.                         System.out.println();
  6.                 }
  7.                 System.out.print(i+"  ");
  8.                
  9.         }
  10.         }
复制代码
回复 使用道具 举报
90以上就不用考虑了啊  for (int x = 1; x <100 ; x++ )
回复 使用道具 举报
  1. class R1 {
  2.         public static void main(String[] args) {

  3.                 /**
  4.                  * 思路 1、首先设定一段逻辑可以打印出1到100内的整数 2、在整数中判断出个位数不包含9以及十位数不存在9然后打印
  5.                  * 3、在可以打印出需求数据的前提下添加一个计数器 计数器作用,每打印一次数据计数器数值加1 加到5的时候进行一次回车操作,然后重新让
  6.                  * 计数器的值还原成0,循环往复。
  7.                  *
  8.                  * */

  9.                 int num = 0;
  10.                 for (int x = 1; x <= 100; x++) {

  11.                         if (x % 10 != 9 && x / 10 != 9) {
  12.                                 System.out.print(x + "---");
  13.                                 num++;
  14.                         }

  15.                         if (num == 5) {
  16.                                 System.out.println();
  17.                                 num = 0;
  18.                         }

  19.                 }
  20.         }
  21. }

  22. // 相比较而言
  23. /*
  24. class R1 {
  25.         public static void main(String[] args) {
  26.         //此处为获取1-99的数据可以理解
  27.                 for (int x = 1; x < 100; x++) {
  28.                         //此处使用for循环就有些没有逻辑了
  29.                         for (int y = 1; y <= 5; y++) {
  30.                                 //判断问题处理的也不错
  31.                                 if (x % 10 == 9 || x / 10 == 9) {
  32.                                         continue;
  33.                                 }
  34.                                 //此处在print中使用x++大体知道你是什么想法,
  35.                                 //但是逻辑全都混乱了,既然是输出,那就单纯输出好了
  36.                                 System.out.print("x = " + (x++) + "");
  37.                         }
  38.                         System.out.println();
  39.                 }
  40.         }
  41. }
  42. */
复制代码
回复 使用道具 举报

class Demo1 {
         public static void main(String[] args) {
                 for (int x = 1; x <100 ; x++ ){
                                         if (x %10 == 9 || x / 10 ==9){
                                                         continue;
                                         }
                                         for(int y = 0; y < 5; y++) {
                                                         System.out.print("x = "+ x++);
                                         }        
                                                         System.out.println();
                 }
         }
}
回复 使用道具 举报
  1. public static void printTest1(int n) {

  2.                 int count = 0;

  3.                 for (int i=1; i<=100; i++) {

  4.                         if (i % 10 != n & i / 10 != n) {
  5.                                 count++;
  6.                                 System.out.print(i + "\t");
  7.                                 if (count % 5 == 0) {
  8.                                         System.out.println();
  9.                                 }
  10.                         }

  11.                 }
  12.         }
复制代码
封装成一个方法,参数 n 就是你不想见到的那个数字 例如 你要求的 9
回复 使用道具 举报
class Demo1 {
         public static void main(String[] args) {
                         int count = 0;
                 for (int x = 1; x <100 ; x++ ){
                                                 if (x %10 == 9 || x / 10 ==9){
                                                                 continue;
                                                 }
                                                 System.out.print("x = "+ x);
                                                 count++;
                                                 if (count == 5) {
                                                         count = 0;
                                                         System.out.println();
                                                 }   
                 }
         }
}
回复 使用道具 举报
我要技术分啊- -   - - - -- - -   
回复 使用道具 举报
for (int i = 0; i < 100; ) {
                       
                        for (int j = 0; j < 5; j++) {
                                if (i%10==9||i==9) {i = i +1;
                                j--;
                                continue;
                                       
                                }
                                System.out.print(i+++"\t");
                                if(i>=100){break;}
                        }
                        System.out.println();
                }
=============
不知道我这个答案合格不?
回复 使用道具 举报
/*
        (1)打印1到100之内的整数,但数字中包含9的要跳过
        (2)每行输出5个满足条件的数,之间用空格分隔
        (3)如:1 2 3 4 5

*/
class Test01 {
        public static void main(String[] args) {
                int count = 0;
                for(int i =1;i <= 100;i++){
                        //求一个数的个位与十位
                        int ge,shi;
                        ge = i % 10;
                        shi = i / 10 ;
                        //判断个位与十位中是否包含9
                        if(ge == 9 || shi == 9) {
                                continue;
                        }
                        System.out.print(i + " ");
                        count++;
                        if(count % 5 == 0)
                                System.out.println();
                }
                System.out.println();
        }
}

来自宇宙超级黑马专属苹果客户端来自宇宙超级黑马专属苹果客户端
回复 使用道具 举报
Rhwan 中级黑马 2017-1-10 18:22:02
17#
public class Test3 {
        public static void main(String[] args) {
                int count =0;
                for (int i = 1; i <= 100; i++) {
                                if ((i+"").contains("9")) {
                                        continue;
                                }                       
                        System.out.print(i+"  ");
                        count++;
                        if (count%5==0) {
                                System.out.println();
                        }
                }
        }
}       
来自宇宙超级黑马专属苹果客户端来自宇宙超级黑马专属苹果客户端
回复 使用道具 举报
必须要用到continue

点评

不同continue也可以的,兄弟! 只要if(i %10 != 9 && i /10 %10 !=9){}  发表于 2018-5-26 22:21
来自宇宙超级黑马专属苹果客户端来自宇宙超级黑马专属苹果客户端
回复 使用道具 举报
/*
分析以下需求,并用代码实现:
1. 打印1到100之间的整数(包含1和100),当包含1的跳过;
2. 每行输出5个,每个数字用空格隔开;
3. 如:2  3  4  5  6
       7  8  9 20  22
       ......

*/
public class Test2 {
    public static void main(String[] args) {
        int count =0;
        for (int i = 1; i <=100; i++) {
            if(i%10!=1 && i/10%10!=1 && i/100%10!=1){
                count++;
              System.out.print(i+" ");
                if(count%5==0){
                    System.out.println();
                }
            }
        }

    }
}

刚刚做了一个类似的
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马