qiu循环练习1:多重循环控制 难度 !!!
经典的打印金字塔
使用for循环完成下面案例
编写一个程序,可以接收一个整数,表示层数,打印出金字塔。
import java.util.Scanner;
// 经典的打印金字塔
// 使用for循环完成下面案例
// * * *
// ** *** * *
// *** ***** * *
// **** ******* * *
// ***** ********* *********
public class D2{ //关键字 D2 根据 文件名更改
/*
第一步 假设有5行 先打印 5行 5列满屏星星
*****
*****
*****
*****
*****
*****
第二步 打印第一步一半的星星
*
**
***
****
*****
第三步 计算出空格数与层数的关系 和 星星数与层数的关系
空格数:
第一层 4个空格 1个星星 空格数与层数的关系: 总层数 - 当前层数 = 空格数
第二层 3个空格 3个星星 星星数与层数的关系: 2 * 当前层数 - 1
第三层 2个空格 5个星星
第四层 1个空格 7个星星
第五层 0个空格 10个星星
*
***
*****
*******
*********
第四步 找出空格数与星星的关系 打印空心金字塔
第一个 与 最后一个 星星保留 其他都为空格
最后一列为星星
*
* *
* *
* *
*********
*/
public static void main(String[] args) {
int i = 0; //设置5个 星星
int j = 0; //设置行数
int k = 0; //设置空格数
Scanner myScanner = new Scanner(System.in);
System.out.print("请输入空心金字塔的总层数:");
int layers = myScanner.nextInt(); //设置总层数
for(j = 1;j <= layers;j++){ // j 为当前层数 5 为总层数
for (k = 1;k <= layers - j ;k++) { // k 为空格数
System.out.print(" ");
}
for(i = 1;i <= 2 * j - 1;i++){ // i 为星星数
if (i == 1 || i == 2 * j - 1 || j == layers) { // 打印星星的个数
System.out.print("*");
}else{
System.out.print(" ");
}
}
System.out.print("\n");
}
}
}
循环练习:多重循环控制 !!
应用实例:
1、统计3个班的成绩情况,每个班有5名同学,求出各个班的平均分和所有班级的平均分【学生成绩从键盘输入】
2、统计3个及格人数,每个班有5名同学
import java.util.Scanner;
// 1、统计3个班的成绩情况,每个班有5名同学,求出各个班的平均分和所有班级的平均分【学生成绩从键盘输入】
// 2、统计3个及格人数,每个班有5名同学
//第一步 先写出 一个班级的五名同学成绩
//第二步 写出一个班的平均分
//第三步 写出三个班同学的成绩
//第四步 写出三个班的及格人数 并统计出
public class D1{
public static void main(String[] args) {
//编写一个可以接收成绩
Scanner myScanner = new Scanner(System.in);
double score = 0; //成绩
double sumScore = 0; //一个班级的总成绩
double scoreAvg = 0; //一个班级的平均分
double addScore = 0; //所有班级的总成绩
double addScoreAvg = 0; //所有班级的平均成绩
double count = 0; //及格人数的统计
int i = 0; //i 代表着 一个班级的
int j = 0; //j 代表着 几个班级
System.out.println("请输入一个班级的人数:");
int num = myScanner.nextInt(); //一个班级的人数
System.out.println("请输入一共有几个班级:");
int numClass = myScanner.nextInt(); //一共有几个班级
// int num = 5 ; //一个班级的人数
// int numClass = 3; //一共有几个班级
for (j = 1;j <= numClass ;j++ ) {
System.out.println("输入第" + j + "个班级");
for (i = 1;i <= num ;i++ ) {
System.out.println("输入第" + i + "同学的成绩:");
score = myScanner.nextDouble();
if (score >= 60) {
count++; //及格人数的统计
}
sumScore = sumScore + score; //班级的总分为
scoreAvg = sumScore / i; //班级的平均分为
addScore = addScore + sumScore; //所有班级的总分
addScoreAvg = addScore / i; //所有班级的平均成绩
System.out.println("第" + i + "位,同学的成绩为:" + score);
System.out.println("班级的总分为:" + sumScore + "\n班级的平均分为:" + scoreAvg);
}
sumScore = 0;
System.out.println("所有班级的总分为:" + addScore + "\n所有班级的平均分为:" + addScoreAvg);
System.out.println("所有班级的及格人数为:" + count);
}
}
}
跳转语句控制 - break
利用for + break
1 - 100以内的数求和,求出当和第一次大于20的当前数;
//1 - 100以内的数求和,求出当和第一次大于20的当前数;
public class D3{
public static void main(String[] args) {
//第一步 先求出 1 - 100以内的数求和
//第二步 判断 求和数 小于等于 20 的数
//第三步 通过if 判断 第二步 则 小于等于 20 数的后一个和 必然大于20
int i = 0;
int sum = 0;
for (i = 1; i <= 100;i++ ) {
sum = sum + i;
if (sum <= 20) {
}else{
System.out.println("100以内的数求和,第一次大于20的当前数为:" + sum + "\n上一个数为" + i);
break;
}
}
}
}
判断一个整数是否为水仙花数,所谓水仙花数是指一个三位数,其各个位置上的数字立方和等于其本身。
例如 153 = 1 * 1 * 1 + 5 * 5 * 5 + 3 * 3 * 3
import java.util.Scanner;
// 判断一个整数是否为水仙花数,所谓水仙花数是指一个三位数,其各个位置上的数字立方和等于其本身。例如:153
public class D8{
public static void main(String[] args) {
System.out.println("请输入一个三位数的整数:");
Scanner myScanner = new Scanner(System.in);
int num = myScanner.nextInt();
int add1 = num % 10; //个位数
int add2 = num % 100 / 10; //十位
int add3 = num / 100; //百位
int sum = 0; //设置总和
if (num == add1 * add1 * add1 + add2 * add2 * add2 + add3 * add3 * add3) {
System.out.println(num + "是水仙花数!!!");
}else {
System.out.println(num + "不是水仙花数!!!");
}
}
}
求出任意整数范围的水仙花数:
import java.util.Scanner;
public class D9{
public static void main(String[] args) {
int i = 0; //设置循环的次数 并且输出循环的数
Scanner myScanner = new Scanner(System.in);
System.out.println("输入最高范围:");
int layerMax = myScanner.nextInt(); //设置最高范围
System.out.println("输入最低范围:");
int layermin = myScanner.nextInt(); //设置最低范围
for (i = layermin;i <= layerMax ;i++ ) {
int num1 = i % 10;
int num2 = i % 100 / 10;
int num3 = i / 100;
if (i == num1 * num1 * num1 + num2 * num2 * num2 + num3 * num3 * num3) {
System.out.println("水仙花数为:" + i);
}
}
}
}