黑马程序员技术交流社区

标题: 11月3日公开课第二天提问帖 [打印本页]

作者: HM代景康    时间: 2013-11-3 17:33
标题: 11月3日公开课第二天提问帖
11月3日公开课第二天提问帖

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

第一节课

答疑、回顾昨天视频中的重点

变量习题讲解

++、&&、|| 习题讲解

第二节课

for循环

while循环

循环嵌套

break与continue

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

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

公开课课程大纲:http://bbs.itheima.com/thread-95605-1-1.html
公开课视频发布:http://bbs.itheima.com/thread-95819-1-1.html



作者: 残影    时间: 2013-11-3 20:50
站位先{:soso_e163:}
作者: 紫竹芳菲    时间: 2013-11-3 21:16
黑马是保证 在现有工资上可以加倍么?  
作者: Chens    时间: 2013-11-3 21:49
我看到++那里为何是77 不是67  我有点纠结
就是    a++
           ++a
           +a
得到的值
作者: Wesley.zen    时间: 2013-11-3 22:06
for(int j = 1;j<=5;j++){
                for (int i = 1;i<=j;i++){
                        System.out.println(i);
                } 老师什么问题  
作者: 蓝雨星空    时间: 2013-11-3 22:12
求解:int a=2;a+=a-=++a*a--;a=?
作者: 蒼穹龍狼    时间: 2013-11-3 22:16
Chens 发表于 2013-11-3 21:49
我看到++那里为何是77 不是67  我有点纠结
就是    a++
           ++a

因为a++是输出了在加1 如果直接输出是5!如果到下面就边成6了!而++a是先加1再输出所以结果就变成7
作者: 赵怀星    时间: 2013-11-3 22:17
求解  num = 2;  ++num   ,  num++   区别。主要的运算思想。在程序中是怎么走的。
作者: 大国    时间: 2013-11-3 22:24
在编辑命令里面  第一次已经敲了 代码名了   就是javac 了   
作者: 大国    时间: 2013-11-3 22:26
第二次  在  用的时候 可以用什么 快捷键    不用再输入 javac   什么。java 了
作者: week11    时间: 2013-11-3 22:31
for(int i=1;1<=100;i++){
        if(i%2 ==0)
        System.out.println("I(偶数)="+i);
}
打印1-100的偶数,对不对,为什么我执行发现一直在无限循环打印,哪里错了?
作者: 目标    时间: 2013-11-3 22:32
赵怀星 发表于 2013-11-3 22:17
求解  num = 2;  ++num   ,  num++   区别。主要的运算思想。在程序中是怎么走的。

num++是先执行再自增。++num是先自增再执行。++和--都是这个道理
num++;表达式的值为2,但是执行该语句之后num的值变为3;
++num;表达式的值为3,该语句执行之后num本身的值变为3。
执行语句之后num的值都会加1,个人感觉就是前后问题

作者: /yhh大雁/zhh    时间: 2013-11-3 22:33
赵怀星 发表于 2013-11-3 22:17
求解  num = 2;  ++num   ,  num++   区别。主要的运算思想。在程序中是怎么走的。

++num是把计算完的值赋给左值,num++是先开辟一个空间存储下num的值,然后再对num+1,最后把那个存储下的值赋给左值。
作者: /yhh大雁/zhh    时间: 2013-11-3 22:34
大国 发表于 2013-11-3 22:26
第二次  在  用的时候 可以用什么 快捷键    不用再输入 javac   什么。java 了

上下箭头喽
作者: 涛哥哥    时间: 2013-11-3 22:37
Chens 发表于 2013-11-3 21:49
我看到++那里为何是77 不是67  我有点纠结
就是    a++
           ++a

77是对的 我的也是

作者: 涛哥哥    时间: 2013-11-3 22:38
Wesley.zen 发表于 2013-11-3 22:06
for(int j = 1;j

这个程序没有问题呀,运行是对的
作者: 涛哥哥    时间: 2013-11-3 22:40
大国 发表于 2013-11-3 22:26
第二次  在  用的时候 可以用什么 快捷键    不用再输入 javac   什么。java 了

上下方向键

作者: /yhh大雁/zhh    时间: 2013-11-3 22:49
week11 发表于 2013-11-3 22:31
for(int i=1;1

1<=100,这个条件永远成立,当然无线循环,应该是i<=100
作者: 流浪人生    时间: 2013-11-3 22:50
week11 发表于 2013-11-3 22:31
for(int i=1;1

你写错了,i<=100,你写的是1<=100,循环条件一直满足
作者: 蒼穹龍狼    时间: 2013-11-3 23:05
week11 发表于 2013-11-3 22:31
for(int i=1;1

你条件写错了!你不应该写1<=100 应该写i<=100 你1是常量不会变化所以无限循环
作者: 目标    时间: 2013-11-3 23:19
蓝雨星空 发表于 2013-11-3 22:12
求解:int a=2;a+=a-=++a*a--;a=?

a+=a-=++a*a--:此公式中需要考虑优先级的问题,就此公式而言++和--是同等的,所以按照从左向

右的顺序进行,因此执行++a*a--,++a的值是3 a--的值也是3,所以++a*a--的值是3*3等于9在此运算过

程之后a的值就变成2了,之后的公式为a+=a-=9,运算a-=9及a=a-9因为a的值为2,所以a的结果现在是-7

,最后剩下a+=-7及a=a+(-7)及a=2+(-7)结果也就出来了a=-5.不知道这样说你能不能明白,大家也

帮我看一下这样的结果是否正确,有问题希望大家提出来我好改正。
作者: 雨的印记yp    时间: 2013-11-4 01:13
蓝雨星空 发表于 2013-11-3 22:12
求解:int a=2;a+=a-=++a*a--;a=?

实际开发时,写出这种代码会被炒鱿鱼,没有程序员这么绕自己。
作者: 雨的印记yp    时间: 2013-11-4 01:18
赵怀星 发表于 2013-11-3 22:17
求解  num = 2;  ++num   ,  num++   区别。主要的运算思想。在程序中是怎么走的。

++num,和num++都是num自增,num的值等于3。不同的是++num会先加,num++会后加。
举个例子:
   int num = 2;
   int a = num++;  这句话运行时,先将num的值赋给a,即a的值为2,然后num在自加,得3.
  而
  int a = ++num; 这句话运行时,先将num自增,得3,然后把num的值赋给a,即a的值也是3.
作者: 蓝雨星空    时间: 2013-11-4 02:25
大国 发表于 2013-11-3 22:26
第二次  在  用的时候 可以用什么 快捷键    不用再输入 javac   什么。java 了

在cmd中如果之前已经输入过了一个命令,想要重复这个命令时,可以用键盘上的上下箭头键,就可以快速重复之前的命令了
作者: Wesley.zen    时间: 2013-11-4 08:42
Wesley.zen 发表于 2013-11-3 22:06
for(int j = 1;j

for(int j = 1;j<=5;j++){
                 for (int i = 1;i<=j;i++){
                         System.out.println(i);
                 } 之前我写错了,是因为少些了一句话。
正确的应该是for(int j = 1;j<=5;j++){
                     System.out.println("");
                 for (int i = 1;i<=j;i++){
                         System.out.println(i);
                 } 这样就可以执行换行,在第一个打印语句的括号内输入"\n"or"\r"。也可以因为"\n"or"\r"也是换行的!!
作者: guimei_wu    时间: 2013-11-4 17:35
大国 发表于 2013-11-3 22:26
第二次  在  用的时候 可以用什么 快捷键    不用再输入 javac   什么。java 了

上下键选择最近几次的输入,然后选择
作者: 雨的印记yp    时间: 2013-11-4 21:19
今天突然发现一个问题。
System.out.println("hello // world");  字符串中有//但是没有起到注释作用,程序会直接输出 hello // world。
如果
System.out.println("hello \n world"); 字符串中有\n,这回起到作用了,程序输出会换行,输出  hello
                                                                                                                                 world。
问:我一直记得输出语句中会按照字符串原样输出,即“ ”中包含什么就输出什么,问什么转移字符在" "中却能够起作用?
作者: Wesley.zen    时间: 2013-11-4 21:39
大国 发表于 2013-11-3 22:26
第二次  在  用的时候 可以用什么 快捷键    不用再输入 javac   什么。java 了

dos命令行是有记忆功能的,可以用上下键
作者: Wesley.zen    时间: 2013-11-4 21:44
雨的印记yp 发表于 2013-11-4 21:19
今天突然发现一个问题。
System.out.println("hello // world");  字符串中有//但是没有起到注释作用,程序 ...

1.特殊字符:就3个
\":双引号
\':单引号
\\:反斜线
2.转义字符:5个
\' 单引号字符
\\ 反斜杠字符
\r 回车
\n 换行
\f 走纸换页
\t 横向跳格
\b 退格
作者: Wesley.zen    时间: 2013-11-4 21:49
雨的印记yp 发表于 2013-11-4 21:19
今天突然发现一个问题。
System.out.println("hello // world");  字符串中有//但是没有起到注释作用,程序 ...

[System.out.println("hello // world");  字符串中有//但是没有起到注释作用,程序会直接输出 hello // world]是因为//也是字符而括号内的双引号到//这里的时候还没有结束!

作者: guimei_wu    时间: 2013-11-4 22:14
求亮哥视频·····{:soso_e113:}

123.JPG (44.66 KB, 下载次数: 8)

123.JPG

456.JPG (36.73 KB, 下载次数: 10)

456.JPG

作者: HM代景康    时间: 2013-11-4 22:34
guimei_wu 发表于 2013-11-4 22:14
求亮哥视频·····

http://bbs.itheima.com/thread-96193-1-1.html
作者: Chens    时间: 2013-11-5 00:17
蒼穹龍狼 发表于 2013-11-3 22:16
因为a++是输出了在加1 如果直接输出是5!如果到下面就边成6了!而++a是先加1再输出所以结果就变成7  ...

但是结果上课的时候是双7  我很不理解
作者: ka宾    时间: 2013-11-5 08:30
Wesley.zen 发表于 2013-11-3 22:06
for(int j = 1;j

少了一个结束花括号呢
作者: Wesley.zen    时间: 2013-11-5 08:35
ka宾 发表于 2013-11-5 08:30
少了一个结束花括号呢

什么意思?
作者: 緈鍢丶咗掱縴    时间: 2013-11-5 16:40
class char{
        public static void main(String[ ] args)
          {
                int a=3,b;
                b=a++;
                System.out.println(b);
                System.out.println(a);
                }
}

这个问题出现在哪里,不停报错,求教,谢谢!
作者: HM代景康    时间: 2013-11-5 16:58
緈鍢丶咗掱縴 发表于 2013-11-5 16:40
class char{
        public static void main(String[ ] args)
          {

class char    改成   class Char      
作者: 緈鍢丶咗掱縴    时间: 2013-11-5 17:27
这个应该不是char的大小写问题,这只是class的一个名称吧
作者: Cway㊣    时间: 2013-11-5 19:13
lixiaju 发表于 2013-11-3 22:07
应该是位数的问题

搞成这样应该好明白一点

a+=a-=[(++a)*(a)--]

步骤:
1.先++a  结束后a=3
2.进行相乘运算:3*3=9  结束后再进行a--运算  结束后a=2
3.此时a+=a-=9  (此时的a=2)
4.从左至右依次运算   a+=a 运算完之后  a=4
5.a-=9运算完之后  a=-5

作者: Cway㊣    时间: 2013-11-5 19:16
lixiaju 发表于 2013-11-3 22:07
应该是位数的问题

搞成这样应该好明白一点

a+=a-=[(++a)*(a)--]

步骤:
1.先++a  结束后a=3
2.进行相乘运算:3*3=9  结束后再进行a--运算  结束后a=2
3.此时a+=a-=9  (此时的a=2)
4.从左至右依次运算   a+=a 运算完之后  a=4
5.a-=9运算完之后  a=-5

(回复错了楼层,换个姿势再来一次)
作者: Ree~ven    时间: 2013-11-5 19:21
緈鍢丶咗掱縴 发表于 2013-11-5 17:27
这个应该不是char的大小写问题,这只是class的一个名称吧

char在java中是一个关键字,而类的名称不能用关键字
作者: HM代景康    时间: 2013-11-5 20:16
緈鍢丶咗掱縴 发表于 2013-11-5 17:27
这个应该不是char的大小写问题,这只是class的一个名称吧

你改了   调试一下就知道了    char  不能做类名的
作者: /yhh大雁/zhh    时间: 2013-11-5 21:08
蓝雨星空 发表于 2013-11-3 22:12
求解:int a=2;a+=a-=++a*a--;a=?

++a*a--的结果是9,之后a=2,a-=9,的结果是-7,a+=-7的结果是-5
作者: 大国    时间: 2013-11-10 21:47



        File dir=new File("I:\\work\\IO_Demo\\src");
                List<File>  list=new ArrayList<File>();
                FileToList(dir,list);
                System.out.println(list.size());
               
     }
        public static void FileToList(File dir , List<File> list)
        {
                File[] arr=dir.listFiles();
                for(File file : arr)
                {  
                        if(file.isDirectory())
                                FileToList(file ,list);
                        else
                        {
                                if(file.getName().endsWith(".java"));
                            list.add(file);
                         }  
                }
                       
        }
       



w为什么  我这个 list集合里面(list.size());   显示的是全部     而不是 以。java结尾的
文件数量
作者: 杨增坤    时间: 2013-11-10 23:51
大国 发表于 2013-11-10 21:47
File dir=new File("I:\\work\\IO_Demo\\src");
                List  list=new ArrayList();
                FileToList(dir,list ...

else
                        {
                                if(file.getName().endsWith(".java"));
                            list.add(file);
                         }  


多加了一个分号

作者: 大国    时间: 2013-11-11 00:08
大哥  厉害      这是为什么呢   咋就不需要呢??
作者: 大国    时间: 2013-11-11 00:10
public static void COPY()  throws IOException
        {
                        BufferedInputStream  br=new BufferedInputStream
                                        (new FileInputStream("C:\\Users\\AD\\Desktop\\大小姐 - 金沙.mp3"));
                        BufferedOutputStream bw =new BufferedOutputStream
                                        (new FileOutputStream("C:\\Users\\AD\\Desktop\\黑马.mp3"));
                        //byte[] arr=new byte[1024];
                        int len=0;
                       
                        while((len=br.read())!=-1){
                         bw.write(len);
                        br.close();
                        bw.close();
                        }
        }



大侠  这个 呢       怎么 创建 文件里面   没东东。1k大小
求解
作者: 大国    时间: 2013-11-13 22:02
顶一下                 
作者: 杨增坤    时间: 2013-11-13 22:55
大国 发表于 2013-11-11 00:08
大哥  厉害      这是为什么呢   咋就不需要呢??

  if(file.getName().endsWith(".java"));
                            list.add(file);

因为你加了分号的话,那么就是条件判断成功后,执行的是空语句。
而  list.add(file);条件判断成功不能够都会执行。

作者: 杨增坤    时间: 2013-11-13 23:01
大国 发表于 2013-11-11 00:10
public static void COPY()  throws IOException
        {
                        BufferedInputStream  br=new BufferedInputStream

while((len=br.read())!=-1){
                         bw.write(len);
                        br.close();
                        bw.close();
                        }

因为使用的是缓冲流,所以必须要刷新缓冲流。
当你    bw.write(len);执行了这计划后,你就把,但是此时已经存到了流中,你必须刷新缓冲流,bw.flush();这样才把读的文件写到了文件中。
但是你接着有关闭了流,不能继续循环了,所以这也是错的。在读取和写入完毕后,在关闭流!


正确的是


while((len=br.read())!=-1){
                         bw.write(len);
                       bw.flush();
                        }
  br.close();
     bw.close();

作者: 吾凡庸    时间: 2014-7-1 19:01
蓝雨星空 发表于 2013-11-3 22:12
求解:int a=2;a+=a-=++a*a--;a=?

如何运算的啊?




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