练习题

来源:互联网 发布:京东好还是淘宝好 编辑:程序博客网 时间:2024/06/05 06:17

第一题:

/*

需求:定义一个 int类型变量存放当前月份(month),使用switch进行判断,例如 3月到 5月是打印春季,6月到 8月打印夏季,依次类推打印秋季和冬季,但月份不是 1月到 12月,打印月份非法。

*/

public class dome1

{

publicstatic void main(String[] args)

{

/*

步骤:

第一步:声明一个变量名为monthint类型变量;

第二步:switch语句{}中添加条件,:case 1 , case 2 .....case12.

第三步:month switch中查找与它对应的,month6,所以查找case6

第四步:查找到case 6之后,输出 case后面的语句 ,一直往后运行输出,直到遇到break.

*/

intmonth = 6 ;

switch(month)

{

case3:

case4:

case 5: System.out.println("春季");break;

case6:

case7:

case 8: System.out.println("夏季");break;

case9:

case10:

case 11: System.out.println("秋季");break;

case12:

case1:

case 2: System.out.println("冬季");break;

default: System.out.println("月份非法");

}

}

}

/*

小结:

1)switch()的括号中只能添加 整数数据(long,之外的int,short,byte,char).

2)本质上switch()只识别int类型的数据,因为 short , byte , char会自动转化成int类型.

3)当找到与表达式相对应的case,就会输出结果,如果这句case中没有break就会一直往下输出,直到从下面的语句中遇到break,停止输出.

4)default是上面所有的条件都不满足,最后就执行default语句.

5)default写在最后时,不用添加break,因为已经是最后了,后面就是},所以加不加break都可以,如果defaultcasecase之间时,那么就必须有break,因为default是最后才输出的,如果没有break,就会在default输出语句的后面又多输出一行.

*/


第二题:

/*

需求:找出 [1, 500]之间偶数的个数。

*/

public class dome2

{

publicstatic void main(String[] args)

{

/*

步骤:

第一步定义一个变量名为number的变量记录位置;

 定义一个变量名为count的变量 记录偶数个数;

第二步因为循环范围是: 1~500,所以执行 while(number<=500)

第三步在循环过程中,如果遇到偶数(number%2==0),那么就记录下来count+1 ;

第四步然后接着往下查找偶数number+1 ,一直查找到 500 ;

第五步最后输出count,count的数值就为偶数的数量.

*/

int number = 1 ; //定位变量(一直等于查找到的数字的位置)

int count = 0 ; //记录有几个偶数

while(number<=500)

{

if(number%2==0) //验证是否是偶数

{

count++;

}

number++;

}

System.out.println(count);

}

}

/*

小结:

1): 定义两个变量: 1.一个是记录查找到的位置. 2.一个是记录偶数的数量.

2): 通过number count的自增(++) ,实现1 ~ 100的逐个查找 和 偶数的记录 .

*/


第三题:

/*

需求:打印 [1, 100] 正方形数 即 x*x = b , b就为正方形数,比如 149...

*/

public class dome3

{

publicstatic void main(String[] args)

{

/*

步骤:

第一步:定义一个 位置定位变量 i ,时刻记录着位置;

第二步:执行循环,把满足条件(条件为:i*i<=100)i*i输出.

*/

inti = 1 ;

/*

方法一:

while(i<=100)

{

if(i*i<=100)

{

System.out.println(i*i);

}

i++;

}

*/

//方法二:

while(i*i<=100)

{

System.out.println(i*i);

i++;

}

}

}

/*

小结:

1)正方形数为 b = i * i ,那么 b就为正方形数 .

2)[1,100]之间的正方形数,满足的条件为: i*i <= 100 ;

*/



第四题:

/*

需求: [1, 500]之间能整除 7的数的总和。

*/

public class dome4

{

publicstatic void main(String[] args)

{

/*

步骤:

第一步:声明一个位置记录变量,改变位置时记录所查找到的位置.

声明一个记录总和的变量.

第二步:执行循环,当满足i%7==0这个条件就sum+=i,i=501,循环结束,sum的值就为最后1~500中所有的能被7整除的数的加和.

*/

inti = 1 ;

intsum = 0 ;

while(i<=500)

{

if(i%7==0)

{

sum+=i;

}

i++;

}

System.out.println(sum);

}

}

/*

小结:

 (1)设置两个变量:一个记录不同时刻的位置,一个记录不同时刻的加和.

 (2) 能被7整除的意思为:取余为零 i%7==0

 (3)sum+=i == sum = sum + i;

*/


第五题:

/*

需求:打印所有的水仙花数,所谓水仙花数是指一个三位数,其各位数字的立方之和等于该数本身。

*/

public class dome5

{

publicstatic void main(String[] args)

{

/*

步骤:

第一步:分别对三位数的百位,十位,个位设置变量:a , b , c ;

第二步:a 1循环到9 , b c 0循环到 9 , a b c随机组合.

第三步:满足条件(a*a*a+b*b*b+c*c*c==a*100+b*10+c)a,b,ca*100+b*10+c换算成三位数.

*/

for(inta=1;a<=9;a++)

{

for(intb=0;b<=9;b++)

{

for(intc=0;c<=9;c++)

{

if(a*a*a+b*b*b+c*c*c==a*100+b*10+c)

{

System.out.println(a*100+b*10+c);

}

}

}

}

}

}

/*

小结:

(1) 分别对三位数的百位,十位,个位设置变量:a , b , c ;

(2) 条件为:a*a*a+b*b*b+c*c*c==a*100+b*10+c;

(3) 百位* 100 +十位 * 10 +个位 =最终的数 .

*/