社区
Java SE
帖子详情
一个JAVA菜鸟问题.
vince2000au
2004-05-05 10:20:34
偶要输入一个数字,返回这个数字的长度.比如说123,返回就是3.输入4567返回就是4.
void counter(int num)
{
int i = 1;
if(num < 10 )
{
System.out.println(i);
}
else
{
counter(num%10);
i++;
}
}
但结果总是1,为什么啊?请指教!
...全文
29
9
打赏
收藏
一个JAVA菜鸟问题.
偶要输入一个数字,返回这个数字的长度.比如说123,返回就是3.输入4567返回就是4. void counter(int num) { int i = 1; if(num < 10 ) { System.out.println(i); } else { counter(num%10); i++; } } 但结果总是1,为什么啊?请指教!
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
9 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
无欲则钢
2004-05-06
打赏
举报
回复
就是在他执行到counter(num/10)时就转如下一个层中去了,这一层中的以后的代码就要等到返回后才执行的。你是计算机专业的吗?是的话你为什么没好好学西教科书?不是的话你就去找本大学教科书去看看。这是函数调用的细节知识。
vince2000au
2004-05-06
打赏
举报
回复
哦,明白了,I放后面了,就不被执行了,跳到外面去了.对吗?谢谢楼上的,我不是计算机专业的,但对JAVA有点兴趣.
vince2000au
2004-05-05
打赏
举报
回复
谢谢楼上个位,我问题解决了.
static int i = 1;
private static void counter(int num)
{
if(num < 10 )
{
System.out.println(i);
}
else
{
i++;
counter(num/10);
}
}
我最后是这样的,但不明白为什么i++,一定要在counter(num/10);前面,后面为什么不行?
haoqingshi
2004-05-05
打赏
举报
回复
public class test{
public int counter(int num){
if(num < 10 )
{
return 1;
}
else
{
int i=1;
while(num>=10){
i++;
num=num/10;
}
return i;
}
}
public static void main(String args[]){
test t=new test();
int j=t.counter(1234256);
System.out.println(j);
}
}
sean_gao
2004-05-05
打赏
举报
回复
int counter(int num){
return (num<10) ? 1:(counter(num/10)+1);
}
这样就可以了,别人的方法似乎都有问题。(楼上的代码沿用了"%",这是错的)
无欲则钢
2004-05-05
打赏
举报
回复
你没次先是递归,再i++等你递归递到num<10的时候i其实还是1,返回后才加i的。
再有i是个局部的变量,把它变成类变量。
int i;
void counter(int num)
{
if(num < 10 )
{
System.out.println(i);
}
else
{
i++;
counter(num%10);
}
}
sean_gao
2004-05-05
打赏
举报
回复
"%"是不是应该是"/"?我觉得不用i更好,直接
return (num<10)? 1:(counter(num/10)+1);
呵呵。
minghuitian
2004-05-05
打赏
举报
回复
这个当然了,因为你在每次递归的时候变量i都定义并且初始化为1,所以当递归出栈的时候,只能打印1.
应该这样:
int counter(int num)
{
if(num < 10 )
{
return 1;
}
else
{
int i;
i = counter(num%10) + 1;
return i;
}
}
sean_gao
2004-05-05
打赏
举报
回复
i是局部变量把,把它放到方法外部试试看。
从
Java
菜鸟
到专家的资料
这份名为“从
Java
菜鸟
到专家的资料”的压缩包文件包含了丰富的学习资源,旨在帮助初学者逐步成长为
Java
领域的专家。以下是对各个文件的详细解读: 1. **J2EE研究文集.chm**:这个文件专注于
Java
企业级应用开发,...
JAVA
学生成绩管理系统
JAVA
做的学生成绩管理系统,SWING做的界面。SQLServer数据库.初学
JAVA
,如果有见到我程序的朋友,见笑了。偶是
菜鸟
,对
JAVA
只有一点认识。 热爱
JAVA
的朋友,共同学习进步啦!祝愿大家都学好
JAVA
java
.util.Date和
java
.sql.Date
作为
一个
小
菜鸟
,在学习和项目中遇到
问题
是很普遍的情况,小编这个小
菜鸟
就在成长中遇到了这样
一个
问题
,如下 解决错误的方式也挺简单的,只需要把原来实体定义的地方改为相同的Date类型就行了,根据自己...
java
出现报错
java
.lang.IndexOutOfBoundsException
若我们运行程序时,
java
出现报错
java
.lang.IndexOutOfBoundsException
关于
java
.util.NoSuchElementException错误的一则例子
写了
一个
从A文件复制到B文件的例子,其中要求去掉重复的行。于是想到了Set,这本来是很容易的事情,结果在向外写数据时抱错
java
.util.NoSuchElementException网络上反复查证也没有相关的内容,于是自己慢慢的找,...
Java SE
62,635
社区成员
307,269
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章