第一本书 第八章(课后题)

1、什么是二重循环?在内层循环中使用continue和break语句,程序如何跳转?

答:二重循环就是一个循环结构体内又包含另一个完整的循环结构。

continue语句跳转时是跳过了内层循环中的剩余语句进入了内层循环的下一次循环,即跳出当前次循环,进入下一次循环。

break语句是跳出本循环,即提前结束本循环,执行本循环外的语句。

2、编写程序打印如下图案,要求图案的行数由用户输入。

package wk;

import java.util.Scanner;

public class Demo1 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("请输入行数:");
int num= input.nextInt();
for(int i=1;i<=num;i++){
for(int j=1;j<=i;j++){
System.out.println(j+"");
}System.out.println();
}

}
}

3." 百钱百鸡"的问题,题意是:5文钱可以买一只公鸡,3文钱可以买一只母鸡,1文钱可以买3只雏鸡。现在用100文钱买100只鸡,那么公鸡,母鸡,雏鸡各有多少只?编程实现。

package wk;

public class Demo2 {
public static void main(String[] args) {
for(int i=0;i<=20;i++){
for(int j=0;j<=30;j++){
for(int k=0;k<=100;k++){
if(5*i+3*j+k/3==100&&i+j+k==100){
System.out.println("公鸡有:"+i);
System.out.println("母鸡有:"+j);
System.out.println("雏鸡有:"+k);
}
}
}System.out.println(" ");
}
}
}

4.有三个班级各四名学员参赛,从控制台输入每个班级参赛学员的成绩,要求统计出三个班级所有参赛学员中成绩大于85分的学员的平均分,如何编程实现?

package wk;

import java.util.Scanner;

public class Demo3 {

public static void main(String[] args) {
double [][]scores =new double[3][4];
Scanner input = new Scanner(System.in);
int nums=0;
double sum=0;
for(int i=0;i<scores.length;i++){
System.out.println("请输入第"+(i+1)+"个班级的成绩:");
for(int j=0;j<scores[i].length;j++){
System.out.println("请输入第"+(j+1)+"个学生的成绩:");
scores[i][j]=input.nextDouble();
if(scores[i][j]<85){
continue;
}sum+=scores[i][j];
nums++;
}
}
System.out.println("大于85分的学生的平均分为:"+sum/nums);
}
}

5.假设在一个ATM机上取款的过程,首先输入密码(password),最多只能输入三次,超过三次则提示用户“ 密码错误,请取款卡”,结束交易。如果输入正确,在提示用户输入金额(amount),ATM只能输出100元的纸币,一次取钱要求最低0元,最高1000元。如果用户输入的金额符合上述要求,则打印输出用户取钱的钱数,最后“提示用户交易完成,请取卡!”

否则提示用户从新输入金额。

package wk;

import java.util.Scanner;

public class Demo4 {

/**
*珍惜 时间 朋友
*严格要求自己 努力
*加油
* @param args
*/
public static void main(String[] args) {
// TODO 自动生成的方法存根
Scanner input = new Scanner(System.in);
int password;
int amount;
for(int i=1;i<=3;i++){
System.out.println("请输入您的密码:");
password=input.nextInt();
if(password!=111111){
continue;
}
System.out.println("请输入您的金额:");
amount =input.nextInt();
for(;;){
if(amount>=100&&amount<=1000&&amount%100==0){
System.out.println("你取了"+amount+"元");
System.out.println("交易完成,请及时取走您的卡");
break;
}else{
System.out.println("对不起,您输入的金额有误,请重新输入:");
continue;
}
}
break;
}
}
}

6.输入行数,打印菱形,要求如下:

从控制台输入菱形的高度(行数)。如果用户输入的行数合法(奇数),则打印出菱形;否则提示用户输入奇数。

假设用户输入的行数为rows,则每行字符 * 的个数依次为1、3、5、7、......、rows、7、5、3、1

package wk;

import java.util.Scanner;

public class Demo5 {

/**
*珍惜 时间 朋友
*严格要求自己 努力
*加油
* @param args
*/
public static void main(String[] args) {
// TODO 自动生成的方法存根
int rows;
Scanner input = new Scanner(System.in);
System.out.println("请输入行数:");
rows=input.nextInt();
while(rows%2==0){
System.out.println("请输入奇数:");
rows=input.nextInt();
}
int n=(rows+1)/2;
for(int i=1;i<=n;i++){
for(int j=n-1;j>=i;j--){
System.out.print(" ");
}
for(int k=1;k<=2*i-1;k++){
System.out.print("*");
}
System.out.println();
}
for(int i=1;i<2*n-1;i++){
for(int j=1;j<=i;j++){
System.out.print(" ");

}

}
for(int k=1;k<=rows-(2*i);k++){
System.out.print("*");
}
System.out.println();
}
}

原文地址:https://www.cnblogs.com/yunfeioliver/p/7410877.html