作为Java初学者,我最近一直跟着毕老师敲代码。由于白天工作,只能晚上加班看视频学习,这样我独自思考的时间很少。同时也导致我遇到问题的时候往往不知所措,所以我就在论坛上找了些相关的基础题练练手,下面我就简单的介绍一下我觉得很有成就感的一题。
题目要求如下:
打印1-100之内的整数,但包含7的不打印,例如7,17,71,等。
这个题目是自己独立完成的,思路有两种:
一、个位数为7的用算术运算的%算法找出;
十位数为7的使用if语句将70-79之间的数提出。
但转过来思考一下,觉得这样做欠妥,因为我知道1-100中有70-79,假如是一个我不知道的数组呢?于是有了第二种思考方法:
二、个位数为7的用算术运算的%算法找出;
十位数为7的用算术运算的/算法找出;
然后再讲各位和十位的处理结果用逻辑运算符||处理,并加以循环判断条件。
如是,程序就来了,
class Demo1
{
public static void main(String [] args)
{
haha : for (int x=1;x<=100;x++)
{
if (x%10==7 || x/10==7)
continue haha;
System.out.println(x);
}
}
}
代码简洁而且高效,如果是找出数组中含有7的元素,或者是类似类型,相当于增加了对数组进行遍历。
发散思维:如果本题中将1-100改为1-1000,1-10000呢?
if语句中的条件改如何修改?
1-1000:x%10==7 || ( (x/10)%10==7 ||x/100==7) //判断个位,判断十位,判断百位。???
1-10000:
|