java循环练习及答案
循环练习
1、实现一个课程名称和课程代号的转换器:输入下表中的课程代号,输出课程的名称。用户可以循环进行输入,如果输入n 就退出系统。(使用do-while 循环实现)
public class A2 {
public static void main(String[] args) { Scanner scanner=new Scanner(System.in ); String ke="" ; do {
S ystem. out .println(" 请输入代码:" );
k e=scanner.next();
i f (ke.equals("1" )){
System. out .println(" 使用Java 语言理解程序逻辑" );
}
i f (ke.equals("2" )){
System. out .println(" 使用HTML 语言开发商业站点" );
}
i f (ke.equals("3" )){
System. out .println(" 使用SQL Server管理和查询数据" ); }
i f (ke.equals("4" )){
System. out .println(" 使用C#开发数据库应用程序" );
}
i f (ke.equals("n" )){
}
} } while (true ); } System. out .println(" 出错!" ); break ;
2、本金10000元存入银行,年利率是千分之三。每过1年,将本金和利息相加作为新的本金。计算5年后,获得的本金是多少?(使用for 循环实现)
class A3 {
} public static void main(String[] args) { double mon = 10000; for ( int i = 0; i
3、求整数1~100的累加值,但要求跳过所有个位为3的数。(使用for 循环实现) public class A4 {
public static void main(String[] args) {
}
} int i = 0,n=0; for (int a = 0; a
4、输入一个正整数N ,判断该数是不是质数,如果是质数输出“N 是一个质数”,否则输出“N 不是质数”。提示:质数的含义:除了1和它本身不能被任何数整除。(使用for 循环实现)
import java.util.Scanner;
public class A5 {
public static void main(String[] args) { int n,m=0; Scanner N=new Scanner(System.in ); System. out .println(" 请输入要判断的数字:" ); do {
n=N.nextInt();
for (int i = 2; i
if (n%i==0) { } m=1;
}
if (m==1) {
System. out .println("N 不是质数" );
}
e lse {
System. out .println("N 是质数 " );
}
m=0;
} } }while (true );
5、输入一个正整数,将该数的各位左右反转输出,即输入123,输出321。(使用while 循环实现)
import java.util.Scanner;
public class A6 {
public static void main(String[] args) { Scanner input =new Scanner(System.in ); System. out .print(" 请输入一个正整数:"); int num = input.nextInt(); if (num > 0){ System. out . println (" 反转前:" + num); System. out .print(" 反转后:" ); while (num != 0){ int temp = num % 10; System. out .print(temp); num /= 10; } } else {
System. out .println(" 您输入的不是一个正整数!" );
}
} }
6、在屏幕上打印出n 行的金字塔图案,如,若n=5,则图案如下:
*
***
*****
******
*********
public class A7 {
} public static void main(String[] args) { } for (int i=1;i
7、打印出100~999之间的所有“水仙花数”。所谓“水仙花数”,是指一个3位数,其各位数字立方和等于该数本身。例如:153是一个“水仙花数”,因为153=13+53+33。
public class A8 {
public static void main(String[] args) {
}
}
} int a,b,c; for (a=1;a
8、幸运猜猜猜:游戏随机给出一个0~99(包括0和99)的数字,然后让你猜是什么数字。你可以随便猜一个数字,游戏会提示太大还是太小,从而缩小结果范围。经过几次猜测与提示后,最终推出答案。在游戏过程中,记录你最终猜对时所需要的次数,游戏结束后公布结果。
积分对照表
猜测次数最多20次。
提示:
(1) 产生0~99之间的随机数字:
int number = (int)(Math.random()*100)
(2) 使用for 循环结构,其中循环计数器counter 同时也记录你猜测的次数
(3) 计算积分可以使用switch 结构
import java.util.Scanner;
public class A9 {
public static void main(String[] args) {
int s=0; int number = (int )(Math.random ()*100);
Scanner scanner=new Scanner(System.in );
System.out .println(" 请输入一个0~99(包括0和99)的数字:"); do {
int i=scanner.nextInt(); s++; if (i==number){ if (s==1){ } if (s=2){
}
else {
} if (i>number){ System. out .println(" 对不起,您猜大了!" ); } if (i=7){ System. out .println(" 恭喜您,猜对了!" ); System. out .println(" 这次游戏,您共用了" +s+" 次,就猜对break ; } System. out .println(" 您太有才了!" ); System. out .println(" 这次游戏,您共用了" +s+" 次,就猜对了!" ); break ; 了!" );
break ; }while (s
System. out .println(" 欢迎您下次再玩儿!" );
}
}
9、将一个数组中的元素倒排过来,不能新开一个数组的临时存储空间,只能在原数组上改 public class BubbleSortDEmo {
public static void main(String[] args) {
int[] sum = { 1, 2, 3, 4, 5, 6, 7, 8, 9 };
int temp;
int len = sum.length;
for (int i = 0; i
temp = sum[i];
sum[i] = sum[sum.length - 1 - i];
sum[sum.length - 1 - i] = temp;
}
System.out.println("排序后:");
for(int i=0;i
System.out.println(sum[i]);
}
}
}
10、输入3个整数x,y,z 把三个数从小到大输出
import java.util.Scanner;
public class NumSort {
public static void main(String [] args){
int x,y,z;
Scanner scanner=new Scanner(System.in);
System.out.println("请输入x 变量的值:");
x=scanner.nextInt();
System.out.println("请输入y 变量的值:");
y=scanner.nextInt();
System.out.println("请输入z 变量的值:");
z=scanner.nextInt();
int temp;
if(x>y){
temp=x;
x=y;
y=temp;
}
}
11、输入2组数据分别是年月日 求他们相差多少天?
import java.util.Scanner;
public class ClacYearDay {
public static void main(String[] args){
int[] date_one=new int[3];
int[] date_two=new int[3];
Scanner scanner=new Scanner(System.in);
System.out.println("请输入年:");
date_one[0]=scanner.nextInt();
System.out.println("请输入月:");
date_one[1]=scanner.nextInt();
System.out.println("请输入日:");
date_one[2]=scanner.nextInt();
System.out.println("请输入年:");
date_two[0]=scanner.nextInt();
System.out.println("请输入月:");
date_two[1]=scanner.nextInt();
System.out.println("请输入日:");
date_two[2]=scanner.nextInt();
int after=ClacDay(date_one[0], date_one[1], date_one[2]); int before=ClacDay(date_two[0], date_two[1], date_two[2]); if(after>before){
System.out.println("两个日期之间相差:"+(after-before)+"天"); }
else {
System.out.println("两个日期之间相差:"+(before-after)+"天"); }
}
/**
*
* @param year 年
* @param month 月
* @param day 日
* @return
*/
public static int ClacDay(int year, int month, int day) {
int total = 0;
} } int[] monthday = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 }; for (init = 1; init