昨天的小试身手大家写得如何呢?没有写出来也不要气馁哦,我们一起来看解答吧!
写法1:
public class SelectEven {
public static void main(String[] args){
for(int i = 1 ; i <= 100 ; i++){
if(i % 2 == 0){
System.out.printf("%d ", i);
}
}
}
}
写法2:
public class SelectEven2 {
public static void main(String[] args){
for(int i = 2 ; i <= 100 ; i+=2){
System.out.printf("%d ", i);
}
}
}
第一种写法是用到前几天教过的 if 判断式,判断是否为偶数,再将符合的印出。第二种写法是直接从 2 开始,每次加 2 印出偶数,你写的是哪一种呢?
昨天介绍了三种不同的回圈,有时候我们每一次回圈都需要判断多个条件哪一个成立,打个比方来说就像是老师改完一大堆考卷,需要统计级距人数时,就会遇到,这时候 switch 就会是很好用的工具。
import java.util.Scanner;
public class GradeClassification {
public static void main(String[] args){
int A = 0; //90-100
int B = 0; //80-89
int C = 0; //70-79
int D = 0; //60-69
int F = 0; //0-59
Scanner sc = new Scanner(System.in);
System.out.println("Enter the grades: "); //Windows按下 Ctrl+z 终止,其他作业系统按下 Ctrl+d 终止
while(sc.hasNext()){
int grade = sc.nextInt();
switch(grade / 10){
case 9: //90-99
case 10: //100
A++;
break; //exits switch
case 8: //80-89
B++;
break;
case 7: //70-79
C++;
break;
case 6: //60-69
D++;
break;
default: //0-59
F++;
break;
}
}
System.out.printf("A: %d%nB: %d%nC: %d%nD: %d%nF: %d%n", A, B, C, D, F);
sc.close();
}
}
首先我们从程序最开始看起,先初始化各个级距的个数为 0,接着读取输入直到按下终止键,这个终止键是在告诉电脑已经结束输入。我们使用 Scanner 中的 hasNext 方法,判断是否还有输入值,若还有就会回传 boolean 值 true,否则为 false(读到终止键)。
当我们读入成绩後,switch 会搭配 case 将成绩分类,switch 後面的括号会先执行,成绩除以 10 後的结果会落在 0 到 10 之间,再依照结果进入不同 case。若 case 为 9 或 10 就会执行 A++,下一行的 break 表示离开这一次的 switch,也就是会回到 switch 上一行的 while,因为若成绩介於 90 到 100 之间,就不可能进入其他 case,可以提早离开,判断下一个分数,若是没有 break,则执行完 A++ 後,会继续比对其他的 case 是否成立,虽然在这个程序结果一样,但其他程序可能就会导致答案错误。若分数低於 60 分,则逐一判断 case 皆不符合,就会落入最後的 default,执行 F++,再回到 while 回圈。
让我们再详细认识一下 break 和他的好朋友 continue。若我们今天印出 1 到 10 的数字,如果遇到 7 就表示找到幸运号码不用印出,break 和 continue 分别会有两种结果:
public class LuckyNum {
public static void main(String[] args){
for(int i = 1 ; i <= 10 ; i++){
if(i == 7){
break;
}
System.out.printf("%d ", i);
}
}
}
1 2 3 4 5 6
public class LuckyNum2 {
public static void main(String[] args){
for(int i = 1 ; i <= 10 ; i++){
if(i == 7){
continue;
}
System.out.printf("%d ", i);
}
}
}
1 2 3 4 5 6 8 9 10
你发现差别了吗? break 执行後会直接离开回圈,後面的 8、9、10 都不会印出,但是 continue 执行完不会印出数字,只会回到 for 回圈的一开始,所以後面的数字还是会印出来。
今天的程序码比较多,还是建议大家可以自己打打看,回圈的介绍我们花了两天学习,这是程序中很重要的一部分,所以最後我们再来埋头苦干一下。
埋头苦干
输入一个正整数,印出该边长的等腰三角形。
<<: [Tableau Public] day 9:分析前先处理一下原始资料吧
>>: 前端工程师也能开发全端网页:挑战 30 天用 React 加上 Firebase 打造社群网站|Day9 发表文章页面
奄奄一息的山姆躺在地上,脑海中浮现了人生跑马灯。 「我为什麽会在这里?我的梦想,终究只是梦想吧.....
在 Hook 概观 的文章中,曾经写过一个打造 Hook 的例子。复习一下,发现应该要修改命名为 u...
前几天使用的router-link功能主要是产生超连结最基础的方式,但其实他有很多变化方式。 to属...
开宗明义就以「知识」是什麽?作为开场序幕 你所认定的IT管理层面的知识是 资料库里的知识 学术篇章的...
什麽是市场区隔? 最早看到市场区隔这个词的时候 一直不知道算是名词还是动词 後来多看几次文章後慢慢了...