老师,请看下我的代码是有哪里不对吗?

老师,请看下我的代码是有哪里不对吗?

package com.array;

public class CharArrayDemo {
   public static void main(String[] args) {
       //定义一个字符数组ch并初始化
       char[] ch={'a','b','c','a','A','b','a'};
       //循环遍历数组,统计字符'a'或'A'出现的次数
       int count=0;
       for (int n:ch){
           if (ch[n]=='a'||ch[n]=='A'){
               count+=1;
           }
       }
       //打印输出统计数据
       System.out.println("统计结果为:"+count);
   }
}

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

2回答
好帮手慕小尤 2020-01-06 15:16:56

同学你好,增强循环是获取数组中的值。如下图所示:也就是数组中的'a','b','c','a','A','b','a'。所以n已经是ch数组的值。

http://img1.sycdn.imooc.com//climg/5e12dc9d0935241d06250361.jpg

而ch[n]是获取ch数组下标为n的数据,a在ASCII码表中对应97,则在第一次循环中ch[n]=ch[97]而在数组(ch)中没有下标为97的数组,所以报错。

如果我的回答解决了你的疑惑,请采纳!祝学习愉快!

好帮手慕小尤 2020-01-06 12:06:29

同学你好,判断语句应该改为 if (n == 'a'||n=='A') ,如果n的值为a或n的值为A时,count+1,修改后代码如下:

http://img1.sycdn.imooc.com//climg/5e12b24009d8bca505400228.jpg

如果我的回答解决了你的疑惑,请采纳!祝学习愉快!

  • 提问者 NGU丶Nan #1
    那我写ch[n]=='a'||ch[n]=='A',不也是n的值吗?为什么会报错呢?
    2020-01-06 14:25:09
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师