0基础java入门:第十四节.循环与判断综合使用演示
可以将本章的题目看作是前边课程的综合练习。 每个题目都可以先自行思考和实现一下。再根据文章梳理一下思路。每一个程序都不一定只有一种实现方式,思路正确就可以。
1.数据筛选
使用循环和判断对一些符合条件的数据进行筛选:
1. 将1--100 之间能被 7 整除的整数 输出到控制台
思路分析:我们需要给 1--100 之间的所有数字进行判断,如果能被7整除就输出。
这里 很显然是一个 重复的过程,从题目中可以 知晓 从 1--100 是循环范围 即初始值是1 条件是<=100 步长是+1 。循环体中需要判断 数字是不是被7整除。
代码演示:
public class Demo1{
public static void main(String[] args){
// 初始值1 循环条件<=100 步长 +1
for(int i=1;i<=100;i++){
if(i%7==0){// 判断 是否被7整除
System.out.println(i);
}
}
}
}
运行结果:
2.将 1--100 之间能同时 被 3 和 7整除的整数 输出到控制台
代码演示:
public class Demo1{
public static void main(String[] args){
// 初始值1 循环条件<=100 步长 +1
for(int i=1;i<=100;i++){
if(i%7==0 && i%3==0){// 判断 是否被7和3整除
System.out.println(i);
}
}
}
}
运行结果:
3.将 1--100之间的所有整数,并判断每一个数字的 数字是奇数还是偶数,结果输出到控制台。
代码演示:
public class Demo1{
public static void main(String[] args){
// 初始值1 循环条件<=100 步长 +1
for(int i=1;i<=100;i++){
if(i%2==0){// 判断 是否是偶数
System.out.println(i+"是偶数");
}else{
System.out.println(i+"是奇数");
}
}
}
}
运行结果:
4.将 1--100 之间 3的倍数 和 7的倍数输出到控制台。
代码演示:
public class Demo1{
public static void main(String[] args){
// 初始值1 循环条件<=100 步长 +1
for(int i=1;i<=100;i++){
if(i%3==0&&i%7==0){
System.out.println(i+"同时是3和7的倍数");
}else if(i%3==0){// 判断 是否被3整除
System.out.println(i+"是3的倍数");
}else if(i%7==0){// 判断是否被7整除
System.out.println(i+"是7的倍数");
}
}
}
}
运行结果:
5将 1900 年到 2000 年之间所有的闰年年份输出到控制台。
思路分析:闰年是公历中的名词。闰年分为普通闰年和世纪闰年,普通闰年是能被4整除但不能被100整除的年份为普通闰年;世纪闰年是能被400整除的为世纪闰年。(如2000年是世纪闰年,1900年不是世纪闰年)
代码演示:
public class Demo1{
public static void main(String[] args){
// 初始值1900 循环条件<=2000 步长 +1
for(int i=1900;i<=2000;i++){
if(i%400==0 || (i%4==0&&i%100!=0)){
System.out.println(i+"是闰年");
}else {
System.out.println(i+"不是闰年");
}
}
}
}
运行结果:
2. 数据统计
1. 计算 1--100 之间能被3整除的数字的和是多少。
思路分析:我们需要先找出 1--100 之间能被3 整除的数字 ,之后把他们累加到一起。
代码演示:
public class Demo1{
public static void main(String[] args){
int sum = 0; //定义一个变量 用来累加 所有数字
// 初始值1 循环条件<=100 步长 +1
for(int i=1;i<=100;i++){
if(i%3==0){// 如果能被3整除
sum+=i; // 用sum将所有的数字累加再一起
}
}
// 最后输出结果
System.out.println("1--100 之中能被3整除的数字和是"+sum);
}
}
运行结果:
2. 计算1--100 之间能 同时被 3 和7 整除的数字有多少个。
思路分析:需要找到 1--100 之间能同时被 3和7整除的数字 ,之后统计有多少个这样的数字。
代码演示:
public class Demo1{
public static void main(String[] args){
int count = 0; //定义一个变量 统计个数
// 初始值1 循环条件<=100 步长 +1
for(int i=1;i<=100;i++){
if(i%3==0 && i%7==0){// 如果能被3和7整除
count++; // 发现一个 count就+1
}
}
// 最后输出结果
System.out.println("1--100 之中能被3和7整除的数字有"+count+"个");
}
}
运行结果:
3. 计算 1--1000 之间 能被3和5和7同时整除的数字的 有多少个 ?以及和是多少, 以及平均数是多少。
思路分析:平均数 就是和除以个数,所以我们统计出 个数与 和 之后就可以计算平均数了。
代码演示:
public class Demo1{
public static void main(String[] args){
int count = 0; //定义一个变量 统计个数
double sum = 0; //定义一个变量 统计和 用double类型 这样计算平均数时可以保留小数
// 初始值1 循环条件<=1000 步长 +1
for(int i=1;i<=1000;i++){
if(i%3==0 && i%7==0 && i%5==0){// 如果能被3和7和5整除
count++; // 发现一个 count就+1
sum+=i;// 累加结果
}
}
// 最后输出结果
System.out.println("1--1000 之中能被3和7和5整除的数字有"+count+"个,和是"+sum+",他们的平均数是"+(sum/count));
}
}
运行结果:
4. 计算 10 的阶乘结果是多少,结果输出页面。
思路分析:这里注意 阶乘结果就是把 1 到数值本省的所有整数 相乘 起来的结果。这里注意做的是乘法操作,所以统计变量的初始值不能是0 需要是1.
代码演示:
public class Demo1{
public static void main(String[] args){
int x = 10; // 定义变量x的任意赋值 计算这个值的阶乘结果 但是x值不要超过20
// 以下代码计算 x的阶乘结果
int product = 1; //定义一个变量 统计乘积
// 初始值1 循环条件<=x 步长 +1
for(int i=1;i<=x;i++){
product*=i;
}
// 最后输出结果
System.out.println("x的阶乘结果是"+product);
}
}
运行结果:
3. 确定一个数字是不是素数
素数:也就是质数,指在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数。
因数: 整数a除以整数b(b≠0) 的商正好是整数而没有余数,我们就说b是a的因数。
比如 : 4 除了 1 和 4 意外 还能被 2 整除 所以4不是素数
9 除了 1 和 9 以外 还能被 3 整除 所以9也不是素数
向 2 3 5 7 这些数字 除了 1 和本身 之外再也不能被别的数字 整除。所以他们是素数。
思路分析: 从上边的表述种我们可以大概了解一个判断素数的逻辑。首先 素数必须大于1 小于1的数字都不是素数。其次大于1 的数字也需要 除去 1和本身不在被任何数字整除。而且我们可以看出 一个数字 能被整除的因子 只能出现再 2 到 这个数字的 平方根 之间。例如:判断x 是不是素数。x如果小于2 就不是素数 ,如果大于2还需要判断 x 再 2 -- x的平方根 之间的整数如果发生整除也不是素数。如果上述两种情况没有发生 x才是一个素数。
代码演示: 代码其实不多 ,主要注意看注释 分析代码。核心代码只有 六七行 。这时对逻辑与程序结合的一次最好的训练。
public class Demo1{
public static void main(String[] args){
// 素数
int x = 11; // 定义一个变量 任意赋值。判断这个变量值是不是素数
// 下边定义 布尔类型 b 看作是一个标记。如果b的值是 true 就表示x是素数 b的值是false 表示x不是素数
boolean b = true; // 这里我们赋值为 true 默认我们认为所有的数字都是素数。
// 下边开始正式判断 x 是不是素数
// 1. x 如果小于2 就不是素数
if(x<2){
b = false; // x<2 成立的话,修改b为 false 表示x不是素数。
}else{ //下边是 x<2 不成立的操作
// 2. 判断 从 2 到x的平方根 x会不会被整除
// 这里循环的初始值是2 条件是<=平方根 步长+1
for(int i = 2 ; i <= Math.sqrt(x) ; i++){ // 这里的Math.sqrt(x) 表示x的平方根
if(x%i==0){ //判断 x是不是被整除
b = false;// 如果被整除了 把b修改为false x不是素数。
break;// 终止循环 因为只要被整除一次就不是 素数了 没必要继续循环了。
}
}
}
// 最后判断 b 的值 是true就是素数否则不是素数
if(b){
System.out.println(x+"是素数");
}else{
System.out.println(x+"不是素数");
}
}
}
运行结果:
修改 x 的值 反复验证是否正确。