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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

关于if else后面加不加大括号的区别,加括号会执行里面的全部语句,不加只执行第一条语句,受教了。比对了一下午才弄明白问题所在。
  1. import java.util.*;
  2. class MapTest3
  3. {
  4.         public static void main(String[] args)
  5.         {
  6.                 String s = charCount("abaassbswwbweeberrbrtbtt");
  7.                 System.out.println(s);
  8.         }
  9.         public static String charCount(String str)
  10.         {
  11.                 char[] chs = str.toCharArray();

  12.                 TreeMap<Character,Integer> tm = new TreeMap<Character,Integer>();

  13.                 for (int x= 0; x<chs.length; x++)
  14.                 {
  15.                         Integer value = tm.get(chs[x]);
  16.                        
  17.                         if(value == null)
  18.                         {
  19.                                 tm.put(chs[x],1);
  20.                         }
  21.                         else
  22. //跟着老毕的视频试着自己敲代码,else这里没加大括号一直显示字母出现次数是null,原来是else没加大括号,只执行了第一句。
  23.                         {
  24.                                 value = value+1;
  25.                                 tm.put(chs[x],value);
  26.                         }
  27.                 }
  28.                 StringBuilder sb = new StringBuilder();

  29.                 Set<Map.Entry<Character,Integer>> entrySet = tm.entrySet();
  30.                 Iterator<Map.Entry<Character,Integer>> it = entrySet.iterator();
  31.                 while (it.hasNext())
  32.                 {
  33.                         Map.Entry<Character,Integer> me = it.next();
  34.                         Character ch = me.getKey();
  35.                         Integer v = me.getValue();
  36.                         sb.append(ch+"("+v+")");
  37.                 }

  38.                 return sb.toString();
  39.         }
  40. }
复制代码

21 个回复

倒序浏览
附带一道题:
  1. class MapTest3
  2. {
  3.         public static void main(String[] args)
  4.         {
  5.                 int score = 90;
  6.                 if (score>80)
  7.                 {
  8.                         System.out.println("成绩不错。");
  9.                 }
  10.                 else
  11.                         System.out.println("成绩不理想。");
  12.                         System.out.println("要加油呀。");
  13.         }
  14. }
复制代码


A:成绩不错。
B:成绩不理想。
C:成绩不错。要加油呀。
D:成绩不理想。要加油呀。
回复 使用道具 举报
木森 来自手机 中级黑马 2015-7-20 18:45:39
藤椅
你不是吧
回复 使用道具 举报

哎,忘记这个知识点了啊,发现有时候看了后面忘了前面。

点评

呵呵,没事,挺正常的,以后多复习就是了  发表于 2015-7-20 20:01
回复 使用道具 举报
学习了~~~
回复 使用道具 举报
看过了啊
回复 使用道具 举报
小p 中级黑马 2015-7-20 21:55:00
7#
可以的。。
回复 使用道具 举报
;P  加油
回复 使用道具 举报

谢谢。。。
回复 使用道具 举报
加油,我也一样老是忘记,
回复 使用道具 举报
这个一般还是加上吧,增加可读性
回复 使用道具 举报
王文辉 发表于 2015-7-21 14:30
这个一般还是加上吧,增加可读性

是呢。我也觉得。
回复 使用道具 举报
我也是容易忘记呀。。
回复 使用道具 举报
这个应该是成绩不错。如果把分数改成60,应该就是成绩不理想,加上{}应该就是成绩不理想,继续努力吧

不知道对不对,楼主指正啊
回复 使用道具 举报
的却如此
回复 使用道具 举报
是成绩不错。要加油呀。
回复 使用道具 举报
王勋亮 发表于 2015-7-22 08:27
这个应该是成绩不错。如果把分数改成60,应该就是成绩不理想,加上{}应该就是成绩不理想,继续努力吧

不 ...

这个答案是c,因为没加括号,else只控制成绩不理想,不管多少分数,要加油都是会输出的。
回复 使用道具 举报
fantianfei 发表于 2015-7-22 14:18
这个答案是c,因为没加括号,else只控制成绩不理想,不管多少分数,要加油都是会输出的。 ...

哦哦哦   受教了!谢谢!
回复 使用道具 举报
这个。。。
回复 使用道具 举报

:)这个怎么了
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 加入黑马