黑马程序员技术交流社区
标题:
无限循环怎么用??看了就知道!!!!!
[打印本页]
作者:
641551734
时间:
2016-4-5 22:57
标题:
无限循环怎么用??看了就知道!!!!!
/*
1,分析以下需求,并用代码实现:
(1)打印1到100之内的整数,但数字中包含9的要跳过
(2)每行输出5个满足条件的数,之间用空格分隔
(3)如:1 2 3 4 5
分析
1,取个位和十位的数判断是否含有9;
2,用for循环控制每行的个数
*/
class Test01 {
public static void main(String[] args) {
int count = 1;
for (int x = 1;x <100 ;x++ ) {
int ge = x%10;
int shi = x/10%10;
if (ge!=9 && shi !=9) {
System.out.print(x + "\t");
if (count%5 == 0) {
System.out.println();
}
count++;
}
}
System.out.println("----------------------------------");
//调用方法
noNine(100);
}
/*
需求:将上述题目封装成方法.
分析
1,遍历每位上的数是否含有9,取每位上的数就是除以10的(n-1)次方再%10;
2,判断是否含有9;如果不包含9并且当 10的(n-1) > num 时,说明遍历到最位数为且符合条件;
3,打印并控制每行个数;
*/
public static void noNine(int num) {
int count = 1;
for (int i=1; i<num ;i++ ) {
for (int j=1;;j++ ) { //依次取个,十,百.....位上的数
if (i/(fang10(j-1))%10 == 9) { //含有9则跳出循环判断下一个数
break;
}else if (fang10(j-1)<=num) { //判断是否遍历到最高位
continue;
}
System.out.print(i + "\t");
if (count%5 == 0) {
System.out.println(j);
}
count++;
break;
}
}
}
//10的几次方的方法;
public static int fang10(int a) {
int f = 10;
if (a==0) {
return 1;
}
for (int i=1;i<a ;i++ ) {
f = f*10;
}
return f;
}
}
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2