import java.util.Scanner;
public class Main{
public static void main(String args[]){
int ri, repeat;
int i, digit, m, n, number, sum;
Scanner in=new Scanner(System.in);
System.out.print("请输入重复次数:");
repeat=in.nextInt();
for(ri=1; ri<=repeat; ri++){
System.out.print("(第" + ri + "次)请输入m:");
m=in.nextInt();
System.out.print("(第" + ri + "次)请输入n:");
n=in.nextInt();
for(i=m;i<=n;i++)
{
number=i;sum=0;
while(number!=0)
{
digit=number%10;
sum+=digit*digit*digit;
number/=10;
}
if(sum==i) System.out.println(i);
}
}
in.close();
}
}
首先将你的代码修改了一下,就打点的那几行
然后针对你的问题:
1、循环执行都是最外层循环执行到最内层循环,
2、内层循环执行完了,才退出循环,进而执行下一次外层循环
所以你这段代码
1、首先进入并执行第一次“for(ri=1; ri<=repeat; ri++){”这个循环块
2、再进入并执行第一次“for(i=m;i<=n;i++)”这个循环块
3、最后进入并执行完成“while(number!=0)”这个循环块
4、循环3完全执行完成之后,退出循环进入循环2执行第2次循环(在有第二次循环的前提下),如此往复直到循环2完全执行完成,再退出循环2进入循环1执行第2次循环(在有第二次循环的前提下),也如此往复直到循环1也完全执行完成,整个代码块执行完毕
你想问的是这个吗?还是说其他什么意思?
这个是在一个线程里执行,先执行外层for,条件满足执行内层for 条件满足 执行while 条件true执行
这个肯定是从外到内的,建议你加个断点debug下,让别人讲你永远都不会懂得