第1关:for循环的进阶使用-嵌套循环(1)
1、编程要求:
是时候检验一下了,在start-end
区域中填充代码打印出一个10*10
的矩形,效果如下:
注意:每次只允许输出一颗星*
:
2、测试效果:
3、程序设计思路
(1)利用for的嵌套循环,外层代表行,内层代表列,每一个内层结束后换一行。
4、程序实现:
package step1; public class ForPractice1 { public static void test() { /*****start*****/ for(int i=0;i<10;i++){ for ( int j= 0;j <10; j++){ System.out.print("*"); } System.out.println(); } /*****end*****/ } }
第2关:for循环的进阶使用-嵌套循环(2)
1、编程要求:
请在start-end
区域中填充代码,实现两个三角形的打印输出,效果图如下:
2、测试效果:
3、程序设计思路:
(1)采用for的嵌套循环,和上一题的矩形不同,并不是每行都有星,所以内层循环数要发生变换。
(2)考虑行和列的关系,行数等于列的*数,所以内层循环的次数应该与行数相同。
(3)分割线上下就是用自减运算符代替自增运算符,变量初始值发生改变。
4、程序实现:
package step2; public class ForPractice2 { public static void main(String[] args) { /*****start*****/ //在这里打印出正三角形 for(int x=0;x<10;x++){ for(int y=0;y<=x;y++){ System.out.print("*"); } System.out.println(); } System.out.println("——————————我是华丽的分界线——————————"); //在这里打印出倒三角形 for(int x=10;x>0;x--){ for(int y=x;y>0;y--){ System.out.print("*"); } System.out.println(); } /*****end*****/ } }
第3关:99乘法表
1、编程要求:
在右侧Begin-End
区域中填充代码,打印输出一个99
乘法表,效果图如下:
提示:文中两个表达式之间的间隔使用的是 \t 制表符;
2、测试要求:
3、程序设计思路:
(1)注意观察,和上一题进行比较,采用for的嵌套循环时,循环次数的规律和上一题是一样的。
(2)注意第二个乘数是固定,所以第二个乘数应当是外层变量。
4、程序实现:
package step3; public class ForPractice3 { public static void main(String[] args) { /*****start*****/ for(int i=1;i<10;i++){ for(int j=1;j<=i;j++){ System.out.print(j+"*"+i+"="+i*j+"\t"); } System.out.println(); } /*****end*****/ } }
第4关:综合练习之ATM取款机
1、编程要求:
在右侧编辑器Begin-End
中编写代码,完成和效果图一致的功能。
2、测试效果:
我会对你的程序进行若干次测试,以此来判断你是否完成了本关任务。
第一次测试会输入: 100
2
999
100
1
需要你的程序输出:
注意:平台会输入数据,但是输入的数据不会显示在输出结果中,所以标红部分是我输入的部分,不需要你输出,
其余部分都需要你进行打印输出,输出的符号除了单引号和双引号分号之外其他的全都要使用中文标点。
即预期输出为:
欢迎使用中国人民银行ATM取款机
输入取款金额:
剩余金额:900,是否继续('1':结束,'2':继续):
输入取款金额:
目前余额:900无法满足您的取款需求!
输入取款金额:
剩余金额:800,是否继续('1':结束,'2':继续):
取款结束!
3、程序设计思路:
(1)观察题目:若输入金额足够支付,则会产生是否继续选项。若不足以支付,不会产生继续选项,自动跳转到下一步取钱操作,所以存在continue跳出本轮循环。
(2)需要循环辅助重复内部的一系列取钱操作,没有涉及到具体次数,所以采用while或者do...while都可以。
(3)需要多个if语句用于判断是否进行对应操作。
4、程序实现:
package step4; import java.util.Scanner; public class ForPractice4 { public static void main(String[] args) { /*****start*****/ int money = 1000; int cash = 0; int isornot = 0; Scanner input =new Scanner(System.in); System.out.println("欢迎使用中国人民银行ATM取款机"); do { System.out.println("输入取款金额:"); cash = input.nextInt(); if(money >=cash) { money=money-cash; } else { System.out.println("目前余额:"+money+"无法满足您的取款需求!"); continue; } System.out.println("剩余金额:"+money+",是否继续('1':结束,'2':继续):"); isornot=input.nextInt(); if(isornot==1) { break;} }while(money>0); System.out.println("取款结束!"); /*****end*****/ } }
第5关:选择题
1、选择题答案:D BC B