急急急,语法没错,逻辑错在哪了呢,输出答案是10位

来源:4-15 编程练习

慕粉3825102

2016-08-21 19:30

public class HelloWorld{
public static void main(String[] args){
int num = 999;
int count = 0;
        for(;count<=9;count++){
            if(num/(10^count)<1){
            break; 
         }
        }System.out.println("它是个"+count+"位的数!");

}

}

写回答 关注

4回答

  • 慕的地2840456
    2016-08-22 00:56:15
    已采纳

    if语句中的表达表达式错误!!!10的n次方不能写成10^n,“^”是位运算符!!!

    正解是Math.pow(10, count)即是if中的表达式是(num / Math.pow(10, count) < 1)

    慕粉3825...

    非常感谢!不胜感激

    2016-08-22 15:41:05

    共 1 条回复 >

  • 慕无忌5996393
    2016-09-07 15:55:41

    讲道理来说,开始的定义变量count的初始值应该为1才对吧,哪有什么0位数。。。。。。 public class HelloWorld{ public static void main(String[] args){    int num = 999;    int count = 1;   for(;(num/10)!= 0;count++){     num=num/10; } System.out.println("它是个"+count+"位的数!"); } }

  • 搞不懂e
    2016-08-21 20:25:10

    for(;count<=9;count++)    count等于9的话,count也自增所以是10位,if后面小括号里的扛不动

  • 程序员_818
    2016-08-21 20:10:19

    这代码写的,基本逻辑关系就错了。从逻辑关系上看就是强制count强制循环10次,你count不等于10么

Java入门第一季(IDEA工具)升级版

0基础萌新入门第一课,从Java环境搭建、工具使用、基础语法开始

1165172 学习 · 17581 问题

查看课程

相似问题