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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© zhouzhiming88 中级黑马   /  2015-5-25 00:03  /  2420 人查看  /  40 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

for循环的三嵌套,输出的结果大概是怎样的?

点评

具体问题具体分析  发表于 2015-5-25 00:19

评分

参与人数 1黑马币 +24 收起 理由
周明凡 + 24 赞一个!

查看全部评分

40 个回复

正序浏览
不明觉厉~!
回复 使用道具 举报
我也不摘掉同求
回复 使用道具 举报
太笼统了,看你的输出语句在哪里了,不同的for语句输出的结果也不一样
回复 使用道具 举报
Melo 中级黑马 2015-5-25 21:55:26
36#
只输出过2层嵌套
回复 使用道具 举报
空心等腰三角形不知道算不算
回复 使用道具 举报
同问,坐等大神解答
回复 使用道具 举报
根据具体的问题来测最好
回复 使用道具 举报
确实有点笼统,正在学习中
回复 使用道具 举报
代码吗?可以帮你修改的
回复 使用道具 举报
不太清楚哦,只会for嵌套
回复 使用道具 举报
这是我写的一个小程序里面用到了三层循环,多多指教哈:

——————————————————————————

/**
* 题目:编程列出一个字符串的全字符组合情况,原始字符串中没有重复字符,例如:
*
* 原始字符串是"abc",打印得到下列所有组合情况:
* "a" "b" "c"
* "ab" "bc" "ca" "ba" "cb" "ac"
* "abc" "acb" "bac" "bca" "cab" "cba"
*
* 思路:因为已经确定该字符串中没有重复的,则只需要把字符串的每一位上的字符进行排列组合就行
*
*
*
* */

public class test5 {
       
        public static void main(String [] args)
        {
               
                System.out.println("请输入一个不包含重复字符的三位字符串:");
               
                BufferedReader buf =  new BufferedReader(new InputStreamReader(System.in));
               
                String str = null;
               
                try {
                        str = buf.readLine();
                } catch (IOException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                }
               
                //打印只有一个字符的组合
                for(int i = 0;i<str.length();i++)
                {
                        System.out.print(str.charAt(i)+"\t");
                }
               
                System.out.println();
               
                //打印两个字符的组合
                for(int i = 0;i<str.length();i++)
                {
                        for(int j = 0;j < str.length();j++)
                        {
                                //确保每一位不相等
                                if(str.charAt(i) != str.charAt(j))
                                        System.out.print(str.charAt(i)+""+str.charAt(j)+" ");
                        }
                }
               
                //换行
                System.out.println();
               
                //三层循环打印出三个字符的组合
                for(int i = 0;i<str.length();i++)
                {
                        for(int j = 0;j<str.length();j++)
                        {
                                for(int k = 0;k<str.length();k++)
                                {
                                        //确保每一位不相等
                                        if(str.charAt(i) != str.charAt(j) && str.charAt(i) != str.charAt(j) && str.charAt(k) != str.charAt(j))
                                        {
                                                System.out.print(str.charAt(i)+""+str.charAt(j)+str.charAt(j)+" ");
                                        }
                                       
                                }
                        }
                }
               
               
               
               
        }

}


————————————————————
回复 使用道具 举报
表示 这样不好吧,听起来就有种眩晕的感觉,能不 三嵌套就别
回复 使用道具 举报
你得看是要做什么了
回复 使用道具 举报
这个得看你的具体程序才能说结果呀
回复 使用道具 举报
一般情况是不会用到三层嵌套的。三层嵌套的阅读性太差了
回复 使用道具 举报
表示不明确,自己写个小程序验证下吧
回复 使用道具 举报
Heroe 中级黑马 2015-5-25 17:56:36
23#
这里有一组数  "JQS|1=0/1/2/3/4/5/6/7+,2=4,3=4|2*3",
  1. for (int i = 0; i < contl.length; i++) {
  2.                                         String contt = contl[i]
  3.                                                         .substring(contl[i].indexOf("=") + 1);

  4.                                         if (contt.length() > 1 && contt.split("/").length <= 8) {

  5.                                                 try {
  6.                                                         String[] contts = contt.split("/");
  7.                                                         for (int j = 0; j < contts.length; j++) {
  8.                                                                 for (int j2 = j + 1; j2 < contts.length; j2++) {
  9.                                                                         if (contts[j].equals(contts[j2])) {

  10.                                                                                 return message;
  11.                                                                         }
  12.                                                                 }
  13.                                                         }
  14.                                                 } catch (Exception e) {
  15.                                                         // TODO: handle exception
  16.                                                 }
复制代码

当然这个不是单纯的三层嵌套for循环,取两竖线中间的值,
contl是中间的值按逗号切割后存入的数组
第一个for遍历这个数组取出'='后面的数
再取出有/的,以/分割存入数组
用两个for循环判断是否有相同的值
回复 使用道具 举报
最外层还是行数,怎么打印都是二维空间,进去一层就是每行的个数,再进去一层就是在每一行的每一个的位置上打印一组,这一组可以有换行,也可以没有,但是这一组就是看作是一个整体,打印完之后肯定是向后继续打印这么一组,最后换行再开始打印第二行,上面无论多少行数据都看作一行,然后重复这么几行就行了。。。。。
回复 使用道具 举报
自己动手,是最好的!!!
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 加入黑马