第一题
使用while循环录入班级人数和学员成绩,计算班级学员的平均成绩。
mian.c
public static void main(String[] args) {
System.out.println("请输入班级号:");
Scanner input = new Scanner(System.in);
String ipNum = input.next();
System.out.println("请输入该班级的总人数:");
int num = input.nextInt();
int i=0;
double total=0;
while (i < num) {
System.out.println("请输入学号" + (i + 1) + "的成绩:");
total += input.nextDouble();
i++;
}
System.out.println("该班级学员的平均成绩为:" + (total / num));
}
第二题
2006年培养学员8万人,每年增长25%,请问按此增长速度,到哪一年培训学员人数将达到20万人?
输出如下:
2007年,培训 100000人
2008年,培训 125000人
2009年,培训 156250人
2010年,培训 195312人
2011年,培训 244140人
2011年,年培训人到达20万人
main.c
public static void main(String[] args) {
int num=80000;
int i=6;
while (num < 200000){
i++;
num *=1.25;
if (i < 10) {
System.out.println("200" + i + "年,培训" + num + "人");
}
if (i >= 10) {
System.out.println("20" + i + "年,培训" + num + "人");
}
}
System.out.println("20" + i +"年"+"年培训人到达20万人");
}
第三题
使用do-while实现:连续录入学生姓名,输入“q”则系统退出。
mian.c
public static void main(String[] args) {
String name;
Scanner input = new Scanner(System.in);
do {
System.out.print("请输入学生姓名:");
name = input.next();
} while (!("q".equals(name)));
System.out.println("程序结束!!");
}
第四题
使用do-while实现:输出摄氏温度与华氏温度的对照表,要求它从摄氏温度0度到250度,每隔20度为一项,对照表中的条目不超过10条。
转换关系: 华氏温度 = 摄氏温度 * 9 / 5.0 + 32
? = 0* 9 / 5.0 + 32
? = 20* 9 / 5.0 + 32
提示:
1、循环操作:计算摄氏温度,并输出对照条目
2、循环条件:条目<=10 && 摄氏温度 <= 250
mian.c
public static void main(String[] args) {
double temp1 = 0;
for (int i = 0; i < 10 && temp1 <= 250; ) {
do {
double temp2 = temp1 * 9 / 5.0 + 32;
System.out.println("" + temp1 + "\t" + temp2);
temp1 += 20;
i++;
} while (i < 10);
}
}
第五题
使用while实现打印99乘法表。
main.c
public static void main(String[] args) {
int i=1;
while (i < 10) {
int j=1;
while (j <= i) {
System.out.print(""+i+"*"+j+"="+(i*j)+"\t");
j++;
}
i++;
System.out.println();
}
}
第六题
使用while循环编写一个控制台程序从键盘输入一个4位数的整数并对该整数实现反转输出;如输入:1234,输出4321
mian.c
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int sum = 0;
while (sum < 5) {
System.out.println("请输入四位数的整数:");
int i = input.nextInt();
int a=i%10;
int b=(i/10)%10;
int c=(i/100)%10;
int d=i/1000;
System.out.println(""+a+b+c+d);
sum++;
}
}
for循环结构 练习
第一题
求1~100之间不能被3整除的数之和。
main.c
public static void main(String[] args) {
int sum = 0;
for (int i = 1; i <= 100; i++) {
if (i % 3 == 0) {
continue;
}
sum += i;
}
System.out.println(sum);
}
第二题
Break练习:循环录入某学生5门课的成绩并计算平均分,如果某分数录入为负,停止录入并提示录入错误。
mian.c
public static void main(String[] args) {
double sum =0;
Scanner input = new Scanner(System.in);
for (int i = 0; i < 5; i++) {
System.out.println("请输入成绩:");
double sc= input.nextDouble();
if (sc < 0) {
System.out.println("录入错误!!!");
break;
}
sum += sc;
}
System.out.println("总分为:"+sum+ "\n" +"平均分为:"+(sum/5));
}
第三题
1~10之间的整数相加,得到累加值大于20的当前数。
main.c
public static void main(String[] args) {
int sum=0;
for (int i = 1; i <= 10; i++) {
sum += i;
if (sum > 20) {
break;
}
}
System.out.println(sum);
}
第四题
continue练习:循环录入Java课的学生成绩,统计分数大于等于 80分的学生比例。
mian.c
public static void main(String[] args) {
double people=0;
Scanner input = new Scanner(System.in);
System.out.println("java课程学生的总人数为:");
int sum = input.nextInt();
for (int i = 0; i < sum; i++) {
System.out.println("请输入学生的成绩:");
double sc = input.nextDouble();
if (sc < 80) {
continue;
}
people++;
}
System.out.println("分数大于等于80分的学生比例为:"+(people/sum));
}
第五题
使用for循环实现输出99乘法表。
main.c
public static void main(String[] args) {
for (int i = 1; i < 10; i++) {
for (int j = 1; j <= i; j++) {
System.out.print(""+i+"*"+j+"="+(i*j)+"\t");
}
System.out.println();
}
}
第六题
使用for循环实现将1~100中所有的偶数进行累加并输出累加结果。
mian.c
public static void main(String[] args) {
int sum=0;
for (int i = 1; i <= 100; i++) {
if ((i % 2) != 0) {
continue;
}
sum +=i;
}
System.out.println("sum = " + sum);
}
第七题
分别使用两种循环结构(for, while)找出1~100中所有的质数(只能被1和自身整除的数)。
(1) mian.c
public static void main(String[] args) {
for (double i = 2; i <= 100; i++) {
int flag=0;
for (double j = 2; j < i; j++) {
if (i % j == 0) {
flag++;
}
}
if (flag ==0 ) {
System.out.print((int)i+"\t");
}
}
}
(2) main.c
public static void main(String[] args) {
double i=2;
while (i <= 100) {
double j=2;
double flag=0;
while (j < i) {
if (i % j == 0) {
flag++;
}
j++;
}
if (flag == 0) {
System.out.print((int) i+"\t");
}
i++;
}
}
第八题
使用for循环打印3种三角形。
(1)main.c
public static void main(String[] args) {
for (int i = 0; i < 5; i++) {
for (int j = 0; j <= i; j++) {
System.out.print("*");
}
System.out.println();
}
}
(2)mian.c
public static void main(String[] args) {
for (int i = 1; i <= 5; i++) {
for (int j = 0; j < 5 - i; j++) {
System.out.print(" ");
}
for (int h = 1; h <= 2*i-1; h++) {
System.out.print("*");
}
System.out.println();
}
}
(3)main.c
public static void main(String[] args) {
for (int i = 0; i <5; i++) {
for (int j = 0; j < i; j++) {
System.out.print(" ");
}
for (int h = 0; h < 5 - i; h++) {
System.out.print("*");
}
System.out.println();
}
}