半片橘子 2023-04-24 14:56 采纳率: 92.9%
浏览 16
已结题

如果输入的值为12321(即num值为12321),分析每次循环后循环体内每个变量的值的变化。第6行语句为何要有类型强制转换?

  1. System.out.println("请输入一个正整数:");
  2. Scanner in = new Scanner(System.in);
  3. long num = in.nextLong();
  4. int[] count = new int[10];
  5. while (num != 0) {
  6.  int n = (int) (num % 10);
    
  7.   count[n]++;
    
  8.  num /= 10;
    
  9. }
  • 写回答

4条回答 默认 最新

  • 於黾 2023-04-24 15:22
    关注

    1.while循环是在对n的每一位进行分解
    num%10得到num的个位,num/=10去掉个位
    得到的数字作为索引增加count[n]++,最后统计出的是num里各个数字的个数
    count[0]里存的是0的个数,count[1]里存的是1的个数
    2.num是long型,那么num%10也是long型
    java是强类型的编程语言
    一个小类型可以直接赋值给一个大的类型,隐式转换
    而一个大类型不可以赋值给一个小类型,必须强制转换

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 5月2日
  • 已采纳回答 4月24日
  • 创建了问题 4月24日

悬赏问题

  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度
  • ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测
  • ¥15 ETLCloud 处理json多层级问题
  • ¥15 matlab中使用gurobi时报错
  • ¥15 这个主板怎么能扩出一两个sata口
  • ¥15 不是,这到底错哪儿了😭
  • ¥15 2020长安杯与连接网探
  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么