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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© HM代景康   /  2013-11-3 17:33  /  8520 人查看  /  59 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

蓝雨星空 发表于 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.不知道这样说你能不能明白,大家也

帮我看一下这样的结果是否正确,有问题希望大家提出来我好改正。

评分

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

查看全部评分

回复 使用道具 举报
蓝雨星空 发表于 2013-11-3 22:12
求解:int a=2;a+=a-=++a*a--;a=?

实际开发时,写出这种代码会被炒鱿鱼,没有程序员这么绕自己。
回复 使用道具 举报
赵怀星 发表于 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.

评分

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

查看全部评分

回复 使用道具 举报
大国 发表于 2013-11-3 22:26
第二次  在  用的时候 可以用什么 快捷键    不用再输入 javac   什么。java 了

在cmd中如果之前已经输入过了一个命令,想要重复这个命令时,可以用键盘上的上下箭头键,就可以快速重复之前的命令了
回复 使用道具 举报

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"也是换行的!!
回复 使用道具 举报
大国 发表于 2013-11-3 22:26
第二次  在  用的时候 可以用什么 快捷键    不用再输入 javac   什么。java 了

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

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

1.特殊字符:就3个
\":双引号
\':单引号
\\:反斜线
2.转义字符:5个
\' 单引号字符
\\ 反斜杠字符
\r 回车
\n 换行
\f 走纸换页
\t 横向跳格
\b 退格

评分

参与人数 1技术分 +1 收起 理由
HM代景康 + 1 赞一个!

查看全部评分

回复 使用道具 举报 1 0
雨的印记yp 发表于 2013-11-4 21:19
今天突然发现一个问题。
System.out.println("hello // world");  字符串中有//但是没有起到注释作用,程序 ...

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

评分

参与人数 1黑马币 +2 收起 理由
HM代景康 + 2

查看全部评分

回复 使用道具 举报
求亮哥视频·····{:soso_e113:}

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

123.JPG

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

456.JPG

评分

参与人数 1黑马币 +1 收起 理由
HM代景康 + 1 《java零基础入门辅导班》第二天.rar 链接.

查看全部评分

回复 使用道具 举报
回复 使用道具 举报
Chens 初级黑马 2013-11-5 00:17:54
33#
蒼穹龍狼 发表于 2013-11-3 22:16
因为a++是输出了在加1 如果直接输出是5!如果到下面就边成6了!而++a是先加1再输出所以结果就变成7  ...

但是结果上课的时候是双7  我很不理解
回复 使用道具 举报
ka宾 中级黑马 2013-11-5 08:30:53
34#

少了一个结束花括号呢
回复 使用道具 举报
ka宾 发表于 2013-11-5 08:30
少了一个结束花括号呢

什么意思?
回复 使用道具 举报
class char{
        public static void main(String[ ] args)
          {
                int a=3,b;
                b=a++;
                System.out.println(b);
                System.out.println(a);
                }
}

这个问题出现在哪里,不停报错,求教,谢谢!
回复 使用道具 举报
緈鍢丶咗掱縴 发表于 2013-11-5 16:40
class char{
        public static void main(String[ ] args)
          {

class char    改成   class Char      
回复 使用道具 举报
这个应该不是char的大小写问题,这只是class的一个名称吧
回复 使用道具 举报
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
回复 使用道具 举报
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

(回复错了楼层,换个姿势再来一次)
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马