1.什么是二重循环?在内层循环中使用continue和break语句,程序如何跳转?
内循环中continue是跳出当前循环,比如说循环10次,当执行到第二次时遇到continue则本次不执行,会跳到第3次继续执行;若这里是break的时候则跳出所有循环,也就是余下的循环都不执行了。
2.编写程序,打印如下图案。
package sra;
import java.util.Scanner;
public class DJ9word2 {
@SuppressWarnings("resource")
public static void main(String[] args) {
Scanner i=new Scanner(System.in);
System.out.print("请输入行数:");
int num=i.nextInt();
for(int a=1;a<=num;a++){
for(int b=1;b<=a;b++){
System.out.print(b+" ");
}
System.out.println();
}
}
}
3.我国古代数学家张丘建在《算经》中出了一道“百钱买百鸡”的问题,题意是这样的:5文钱可以买1只公鸡,3文钱可以买1只母鸡,1文钱可以买3只雏鸡。现在用100文钱买100只鸡,那么各有公鸡,母鸡,雏鸡多少只?
package sra;
public class DJ9word3 {
public static void main(String[] args) {
int Cock=0;
int Hen=0;
int chick=0;
for(Cock=0;Cock<=100;Cock++){
for(Hen=0;Hen<=100;Hen++){
for(chick=0;chick<=100;chick++){
if(Cock+Hen+chick==100&&Cock*15+Hen*9+chick==300){
System.out.print("公鸡的数量为:"+Cock);
System.out.print("母鸡的数量为:"+Hen);
System.out.print("雏鸡的数量为:"+chick);
System.out.println();
}
}
}
}
}
}
4.有三个班级各四名学员参赛,从控制台输入每个班级参赛的成绩,要求统计出三个班级所有参赛学员中成绩大于85分的学员的平均分,如何编程实现?
package sra;
import java.util.Scanner;
public class DJ9word4 {
@SuppressWarnings("resource")
public static void main(String[] args) {
int[] amrk=new int[4];
int classnum=3;
int count=0;
double sum=0;
Scanner i=new Scanner(System.in);
for(int a=0;a<classnum;a++){
System.out.println("请输入第"+(a+1)+"个班级的成绩");
for(int b=0;b<amrk.length;b++){
System.out.print("第"+(b+1)+"个学员的成绩:");
amrk[b]=i.nextInt();
if(amrk[b]<85){
continue;
}else{
count++;
sum+=amrk[b];
}
}
System.out.println();
}
System.out.println("成绩85分以上的学员的平均分是:"+sum/count);
}
}
5.假设一个简单的在ATM的取款过程如下:首先提示用户输入密码(password),最多只能输入三次,超过三次则提示用户“密码错误,请取卡”,交易结束。如果用户密码正确,再提示用户输入金额(amount),ATM只能输出100元纸币,一次取钱要求最低0元,最高1000元。如果用户输入的金额符合上述要求,则打印输出用户的钱数,最后提示用户“交易完成,请取卡”,否则提示用户重新输入金额。假设用户密码是111111。
package sra;
import java.util.Scanner;
public class DJ9word5 {
@SuppressWarnings("resource")
public static void main(String[] args) {
int a=0;
Scanner i=new Scanner(System.in);
for(a=0;a<3;a++){
System.out.print("请输入密码:");
int Password=i.nextInt();
if(Password==111111){
System.out.print("请输入取款金额:");
int aom=i.nextInt();
for(int b=0;b<=10;b+=1){
if(aom>=0){
if(aom<=1000&&aom%100==0){
System.out.println("您的取款金额为:"+aom);
System.out.println("交易完成,请取卡。");
break;
}else{
System.out.print("您输入的金额不合法,请重新输入:");
int aom2=i.nextInt();
aom=aom2;
continue;
}
}else{
System.out.print("您输入的金额不合法,请重新输入:");
int aom2=i.nextInt();
aom=aom2;
continue;
}
}
}else{
continue;
}
break;
}if(a==3){
System.out.println("密码错误,请取卡。");
}
}
}
6.输入行数,打印棱形,要求如下:
从控制台输入棱形的高度(行数)。如果用户输入的行数合法(奇数),则打印出棱形;否则提示用户输出奇数。
假设用户输入的行数为rows,则每行字符*的个数为1。3.5.7.···,rows,···,7,5,3,1。
package sra;
import java.util.Scanner;
public class DJ9word6 {
@SuppressWarnings({ "unused", "resource" })
public static void main(String[] args) {
Scanner i=new Scanner(System.in);
System.out.print("请输入棱形行数:");
int num=i.nextInt();
for(int a=0;;a++){
if(num>0){
if(num%2==1){
for(int b=1;b<=num;b++){
for(int c=1;c<=num-b;c++){
System.out.print(" ");
}
for(int d=1;d<=2*b-1;d++){
System.out.print("*");
}
System.out.println();
}
for(int e=num-1;e>=1;e--){
for(int f=1;f<=num-e;f++){
System.out.print(" ");
}
for(int g=1;g<=2*e-1;g++){
System.out.print("*");
}
System.out.println();
}
break;
}else{
System.out.print("请输入奇数:");
int num2=i.nextInt();
num=num2;
continue;
}
}else{
System.out.print("请输入奇数:");
int num2=i.nextInt();
num=num2;
continue;
}
}
}
}