相信最近许多朋友学习语言可能会有焦虑,"现在人工智能这么发达,丢个指令进去它就还给你一个结果,我们学习它还有意义吗?"。
对于这个问题,就像我们小学学习算数,我们明知道有计算器这么方便的东西,直接给个过程它就给你一个结果,那你说算数还要不要学?AI终究只是个工具,是为了帮助我们工作更加快捷的,这个不用担心,取代人的永远不是工具,是会使用工具的人。

继续回到我们的进程,上一节我们了解了那些个循环结构和特点,继续来做一些循环练习,这一块可能对大学生比较友好,可能会涉及他们的一些考试题,也都比较简单,废话不多说,直接来看练习:
练习1:
要求模拟考试结算系统,输入三次成绩,判断平均分。
老样子先分析一波,我们是不是要先用Scanner接收一下,成绩可能有小数,所以选double类型声明一个成绩变量,然后用个for循环依次加起来,输入几次平均分成几份就行了。
直接来看代码:
public class Test01 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
//用sum接收一下总成绩
double sum=0;
for (int i=0;i<3;i++){
System.out.println("请输入第"+(i+1)+"次成绩");
//获取键盘输入成绩
double score = input.nextDouble();
//把每次成绩加起来
sum+=score;
}
System.out.println("你的总成绩是:"+sum);
System.out.println("平均成绩:"+sum/3);
}
}

因为想到有人可能乱输成绩,我们还可以在for里加个if判断一下区间:

如果成绩太低我们是不是还可以加一个嘲笑语句,这就不细说了。
练习2:
使用三种循环结构while,do.while,for循环完成计算100以内偶数之和。
先看for循环
public class Test01 {
public static void main(String[] args) {
int num=0;
for (inti=2 ;i<100;i+=2){
num+=i;
}
System.out.println(num);
}
}

我们这个一百以内没带100,想加上直接在上面for里面换换成i<=100就可以了,别的没什么好说的。
while:
public class Test01 {
public static void main(String[] args) {
//while先声明起始变量,循环初始值
int i=2;
//定义一个num接收和
int num=0;
while (i<100){
num+=i;
i+=2;
}
System.out.println(num);
}
}

结果也是非常完美,想带上100也是while后面换成i<=100
do while:
public class Test01 {
public static void main(String[] args) {
//定义起始变量
int i=0;
int num=0;
do {
num+=i;
i+=2;
}while (i<100);
System.out.println(num);
}
}

也没什么可说的,自己照着过程走一遍就知道了。
练习3:
一张纸0.001米,对折多少次能超过珠峰高度。
public class Test01 {
public static void main(String[] args) {
//接收纸张厚度
double paper=0.001;
//接收珠峰高度
double mountain=8848;
for (int i=1; i>0;i++){
paper=paper*2;
//打出每次折叠的结果,也可以不写,方便查看过程
System.out.println(paper);
if (paper>mountain){
System.out.println("折叠了"+i+"次,超过珠峰时的高度是"+paper);
break;
}
}
}
}

珠峰问题因该是每个编程初学者都完成的问题,也比较简单。
练习4:
键盘录入某学生体育测试100米跑步成绩,成绩在20s内则通过考试,否则提示一周后重新测试。
public class Test01 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("请输入100米测试成绩");
//用s接收秒数
double s = input.nextDouble();
if (s<20){
System.out.println("恭喜通过测试");
}
while (s>=20){
System.out.println("请一周后重新测试");
System.out.println("请输入100米测试成绩");
//前面已经声明过了,这里直接来用
s=input.nextDouble();
if (s<20){
System.out.println("恭喜通过重测");
}
}
}
}

这个使用了嵌套稍微复杂一点但也不难。