1. 程式人生 > >第八章 課後題

第八章 課後題

con ava rgs core 個學生 demo1 args i++ 要求

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();
}
}
}
}

第八章 課後題