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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© HM代景康 高级黑马   /  2013-11-5 20:03  /  3650 人查看  /  19 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

11月3日公开课第二天提问帖

请大家围绕今天的课程内容提问,以下是今天的课程内容

第一节课
答疑、回顾昨天视频中的重点
循环嵌套习题讲解
应用型习题讲解
第二节课
数组创建与初始化
数组基本操作
数组排序
二维数组

提问要简洁清晰,这样老师才能更明确的回答你的问题!!

如问题无法论坛解决,老师会在后天的公开课,回答大家的问题。



19 个回复

倒序浏览
占个沙发
回复 使用道具 举报
请问一下老师 for 循环是 234的执还是243的执行啊?
如果是243的执行我就是想通程序了
如果是234的执就想不通啊

点评

执行顺序是1 243 243 243 。。。。  发表于 2013-11-5 22:15
回复 使用道具 举报
for(int a : b){System.out.println(a);} 老师,这个循环怎么理解呢

点评

这是一个foreach循环,b应该是一个int数组,即int[] b,这样for(int a : b){...}就会遍历b数组中每个元素的值并且打印。  发表于 2013-11-5 23:57
回复 使用道具 举报
  1. System.out.println(true?false:true?false:true);
  2. 结果为什么是false?
复制代码

点评

true?false: (true?false:true)这样比较清晰一点,括号里面前面表达式是true 结果是第一个值false, 这个时候就成了 true?false:false 结果还是第一个值false  发表于 2013-11-5 22:28
true?false: (true?false:true)这样比较清晰一点,括号里面前面表达式是true 结果是第一个值false, 这个时候就成了 true?false:false 结果还是第一个值false  发表于 2013-11-5 22:28
回复 使用道具 举报
秋风吹进落叶 发表于 2013-11-5 22:15
for(int a : b){System.out.println(a);} 老师,这个循环怎么理解呢

这个是JAVA1.5后的增强for语句 (foreach)  b可以是集合也可以是数组  功能就是把b里面的内容都遍历一遍  你这里就是把数组或集合遍历后输出
回复 使用道具 举报
秋风吹进落叶 发表于 2013-11-5 22:15
for(int a : b){System.out.println(a);} 老师,这个循环怎么理解呢

这个是高级for循环。
  1. public class Demo {
  2.         public static void main(String[] args) {
  3.                 /**
  4.                  * 格式:for(类型 变量:集合变量)
  5.                  * 此变量:必须实现了Iterator接口 只能读取,
  6.                  * 不能对其进行其他操作(修改,删除,增加)
  7.                  */

  8.                 String[] ss = { "abc", "123", "de12" };
  9.                 for (String s : ss)
  10.                         System.out.println(s);

  11.                 int[] a = { 1, 2, 3, 4, 5, 6 };
  12.                 for (int s : a) {
  13.                         System.out.println(s);
  14.                 }
  15.         }

  16. }
复制代码
希望对你有帮助!
回复 使用道具 举报

应该是这样理解的 三目运算符从右到左运算 true?false:true?false:true 这里相当于true?false:(true?false:true)
回复 使用道具 举报
香_獨_秀 发表于 2013-11-5 22:10
请问一下老师 for 循环是 234的执还是243的执行啊?
如果是243的执行我就是想通程序了
如果是234的执就想不 ...


评分

参与人数 1技术分 +1 收起 理由
HM代景康 + 1 很给力!

查看全部评分

回复 使用道具 举报
秋风吹进落叶 发表于 2013-11-5 22:15
for(int a : b){System.out.println(a);} 老师,这个循环怎么理解呢

这是JDK1.5以后的加强版,就是只要a在b之内,就执行for循环
回复 使用道具 举报
本帖最后由 涛哥哥 于 2013-11-6 10:27 编辑

C语言基本语法和JAVA比较很相似 以下是以九九乘法表比较
#include<stdio.h>                                                                   class Dome{
void main(){                                                                                    public static void main(String[] args){
for(int j=1; j<=9; j++){                                                                        for(int j=1; j<=9; j++){      
    for(int i=1;i<=j;i++){                                                                                for(int i=1;i<=j;i++){
       printf("%d%s%d%s%d",j,"x",i,"=",j*i);                                                 System.out.print(j+"x"+i+"="+i*j);         
                                       printf("\t");                                                                                               System.out.print("\t");
             }                                                                                                              }
             printf("\n");                                                                                                       System.out.println();
        }                                                                                                                   }
                                                                                                                    }
          }                                                                                                   }



3.jpg (27.13 KB, 下载次数: 17)

C

C

4.jpg (28.29 KB, 下载次数: 21)

java

java

评分

参与人数 1技术分 +1 收起 理由
HM代景康 + 1 很给力!

查看全部评分

回复 使用道具 举报
/*获取1~10的和,并打印
        1~100之间 7的倍数的个数,并打印*/
        public static void main(String[] args)         {
                int res = add(1,10);
                //在java里怎么获取输入值?scanf(a,b)??
                System.out.println("result="+res);
                System.out.println(add(1,10));
                System.out.println(count(1,100,7));
                count1(1,100,7);
               
        }

        static int add(int a, int b){
                //void 不行,函数没有返回值,不能设置return?
                //我要是想用void,该怎么弄,只能直接在这个方法里打印?
                int sum =0;
                for ( int c = a; b >= c; c++ )
                {
                        sum += c;
                }
                return sum;
        }

        static int count(int s,int e, int c){
                 int num = 0;
                 for ( ; e >= s;s++ ){
                         if (s%c == 0){
                                 num++;
                         }
                 }
                 return num;
        }
                 //有办法同时获得,选中数吗?
        static void count1(int s,int e, int c){
               
                for ( int a = s;a <=e ;a++){
                        if (a%c == 0){
                                System.out.print("可被整除的数==="+a+"\n");
                                //System.out.println();
                        }
                }
             
        }
//累加思想?记录变化最终结果?还是变化后结果?字符串不断增加又该怎么弄?(最好给个实例)
回复 使用道具 举报

理解了,谢谢~
回复 使用道具 举报
学习学习下
回复 使用道具 举报
对我目前我这样的菜鸟来说太难了
回复 使用道具 举报
看看,学习下
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马