题目:
判断一个数(小于10位)的位数。
例如:输入999,则输出 “它是个3位的数!”
渣代码:
public class HelloWorld{
public static void main(String[] args){
int num = 999;
int count = 0;
int upNum = 10;
int i = 1;
for (; i <= 10; i++) {
if (num < upNum) {
break;
}
if (i == 1) {
continue;
}
upNum *= 10;
}
String str = "它是个" + (i - 1) + "位的数!";
System.out.println(str);
}
}
好代码
public class HelloWorld{
public static void main(String[] args){
String str;
int num = 999;
int count = 0;
if (num >= 0 && num<=999999999){
while(num != 0){
count++;
num/=10;
}
str = "它是个"+ count+"位的数!";
} else{
str = "输入有误!";
}
System.out.println(str);
}
}
总结
- 要充分利用 Java 的强类型特性,能更简洁有效;
- 比如,这里面因为 num 是 int 类型,所以 999 / 10 的时候得到的是 99,而不是 99.9;
- 三次之后,num 就是0,而 count 正好得出3,也就是正确的位数