当前位置:文档之家› java循环练习及答案

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")){System.out.println("出错!");break;}} while (true);}}2、本金10000元存入银行,年利率是千分之三。

每过1年,将本金和利息相加作为新的本金。

计算5年后,获得的本金是多少?(使用for循环实现)class A3 {public static void main(String[] args) {double mon = 10000;for(int i = 0; i < 5; i++){mon *= 1+0.003;}System.out.println("5年后,获得的本金是"+mon+"元");}}3、求整数1~100的累加值,但要求跳过所有个位为3的数。

(使用for循环实现)public class A4 {public static void main(String[] args) {int i = 0,n=0;for (int a = 0; a < 10; a++) {for (int b = 0; b <= 9; b++) {if (b!=3) {i=a*10+b;n+=i;}}}n+=100;System.out.println(n);}}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 < n; 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<=5;i++){for(int j=1;j<=5-i;j++){System.out.print(" ");}for(int k=1;k<=2*i-1;k++){System.out.print("*");}System.out.println();}}}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<=9;a++){for(b=0;b<=9;b++){for(c=0;c<=9;c++){if((a*a*a+b*b*b+c*c*c)==(100*a+10*b+c)){System.out.println((100*a+10*b+c));}}}}}}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){System.out.println("您太有才了!");System.out.println("这次游戏,您共用了"+s+"次,就猜对了!");break;}if(s<=6&&s>=2){System.out.println("这么快就猜出来了,您真聪明!");System.out.println("这次游戏,您共用了"+s+"次,就猜对了!");break;}if(s>=7){System.out.println("恭喜您,猜对了!");System.out.println("这次游戏,您共用了"+s+"次,就猜对了!");break;}break;}else{if(i>number){System.out.println("对不起,您猜大了!");}if(i<number){System.out.println("对不起,您猜小了!");}}}while(s<20);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 < len / 2; 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<sum.length;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 init;int[] monthday = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };for (init = 1; init < year; init++) {if (init % 4 == 0 && init % 100 != 0 || init % 400 == 0) {total += 366;} else {total += 365;}}if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) {monthday[2] = 29;}for (int i =0; i < month; i++) {total += monthday[i];}total += day;return total;}}。

相关主题