1:选择结构
1、小王参加考试,如果成绩大于85则奖励平衡车一辆
1 import java.util.Scanner; 2 3 public class Text { 4 public static void main(String[] args) { 5 Scanner input=new Scanner(System.in); 6 System.out.println("请输入你的考试成绩"); 7 int score=input.nextInt(); 8 if (score>85){ 9 System.out.println("奖励平衡车一辆"); 10 } 11 } 12 }
2、张三参加歌唱比赛如果得奖,就奖励劳斯莱斯一辆,否则打扫卫生一年
1 public class Text1 { 2 public static void main(String[] args) { 3 Scanner input=new Scanner(System.in); 4 System.out.println("请输入你的比赛名次"); 5 int score=input.nextInt(); 6 if (score==1){ 7 System.out.println("奖励劳斯莱斯一辆"); 8 }else { 9 System.out.println("打扫卫生一年"); 10 } 11 } 12 }
3、小黑打算买车: 如果他有500万就卖劳斯莱斯 如果他有200万就买马萨拉蒂;如果他有100万就买宝马;如果他有50万卡迪拉克;如果他有10万就买比亚迪; 如果他有5万就买五菱宏光;否则就扫个共享单车
1 import java.util.Scanner; 2 3 public class Text2 { 4 public static void main(String[] args) { 5 Scanner input=new Scanner(System.in); 6 System.out.println("请输入你的钱数"); 7 int num=input.nextInt(); 8 if (num>=500){ 9 System.out.println("劳斯莱斯一辆"); 10 }else if (num>=200){ 11 System.out.println("玛莎拉蒂一辆"); 12 }else if (num>=100){ 13 System.out.println("宝马一辆"); 14 }else if (num>=50){ 15 System.out.println("凯迪拉克一辆"); 16 }else if (num>=10){ 17 System.out.println("比亚迪一辆"); 18 }else if (num>=5){ 19 System.out.println("五菱宏光一辆"); 20 }else { 21 System.out.println("扫个共享单车"); 22 } 23 } 24 }
4、寒冰参加歌唱比赛,如果获得前16名就可以参加接下来的八强比赛,八强比赛要求根据歌手的性别进行分组
1 import java.util.Scanner; 2 3 public class Text3 { 4 public static void main(String[] args) { 5 Scanner input=new Scanner(System.in); 6 System.out.println("请输入你的名次"); 7 int score=input.nextInt(); 8 if (score<16){ 9 System.out.println("请输入你的性别"); 10 String sex=input.next(); 11 if (sex.equals("男")){ 12 System.out.println("进入男子组"); 13 }else { 14 System.out.println("进入女子组"); 15 } 16 }else { 17 System.out.println("进入啦啦队"); 18 } 19 } 20 }
5、使用switch实现输出学生的评分等级,A:100,B:99-90,C:89-80,D:79-70,E:69-60,F:60以下
1 import java.util.Scanner; 2 3 public class Text4 { 4 public static void main(String[] args) { 5 Scanner input=new Scanner(System.in); 6 System.out.println("请输入你的成绩"); 7 int score=input.nextInt(); 8 switch (score/10){ 9 case 10: 10 System.out.println("A"); 11 break; 12 case 9: 13 System.out.println("B"); 14 break; 15 case 8: 16 System.out.println("C"); 17 break; 18 case 7: 19 System.out.println("D"); 20 break; 21 case 6: 22 System.out.println("E"); 23 break; 24 default: 25 System.out.println("F"); 26 break; 27 28 } 29 } 30 }
6、使用switch实现简单的+、-、*、/计算器
1 import java.util.Scanner; 2 3 public class Text5 { 4 public static void main(String[] args) { 5 Scanner input=new Scanner(System.in); 6 System.out.println("请输入a:"); 7 int a = input.nextInt(); 8 System.out.println("请输入b:"); 9 int b = input.nextInt(); 10 System.out.println("请输入"); 11 String str = input.next(); 12 switch (str){ 13 case "+": 14 System.out.println(a+b); 15 break; 16 case "-": 17 System.out.println(a-b); 18 break; 19 case "*": 20 System.out.println(a*b); 21 break; 22 case "/": 23 System.out.println(a/b); 24 break; 25 // default: 26 // System.out.println(); 27 // break; 28 } 29 } 30 }
7、实现水仙花数(三位数,153=1^3+5^3+3^3)
1 import java.util.Scanner; 2 3 public class Text6 { 4 public static void main(String[] args) { 5 //实现水仙花数(三位数,153=1^3+5^3+3^3) 6 Scanner input=new Scanner(System.in); 7 System.out.println("请输入一个三位数"); 8 int num = input.nextInt(); 9 int bWei=num/100; 10 int sWei=num/10%10; 11 int gWei=num%10; 12 if (num==(bWei*bWei*bWei+sWei*sWei*sWei+gWei*gWei*gWei)){ 13 System.out.println("是一个水仙花数"); 14 }else { 15 System.out.println("不是水仙花数"); 16 } 17 18 } 19 }
8、输入小明的考试成绩,显示所获奖励成绩==100分,爸爸给他买辆车;100分>成绩>=90分,妈妈给他买MP4;90分>成绩>=60分,妈妈给他买本参考书;成绩<60分,什么都不买(多重if)
1 import java.util.Scanner; 2 3 public class Text7 { 4 public static void main(String[] args) { 5 Scanner input=new Scanner(System.in); 6 System.out.println("请输入你的成绩"); 7 int score=input.nextInt(); 8 if (score==100){ 9 System.out.println("获得一辆车"); 10 }else if (score>=90 && score<100){ 11 System.out.println("获得一个MP4"); 12 }else if (score>=60 && score<90){ 13 System.out.println("获得一本参考书"); 14 }else { 15 System.out.println("什么都没有"); 16 } 17 } 18 }
9、张三为他的手机设定了自动拨号按1:拨爸爸的号;按2:拨妈妈的号;按3:拨爷爷的号;按4:拨奶奶的号
1 import java.util.Scanner; 2 public class Text8 { 3 public static void main(String[] args) { 4 Scanner input=new Scanner(System.in); 5 System.out.println("请输入号码"); 6 int num=input.nextInt(); 7 switch (num){ 8 case 1: 9 System.out.println("拨爸爸的号"); 10 break; 11 case 2: 12 System.out.println("拨妈妈的号"); 13 break; 14 case 3: 15 System.out.println("拨爷爷的号"); 16 break; 17 case 4: 18 System.out.println("拨奶奶的号"); 19 break; 20 default: 21 System.out.println("拨打错误"); 22 break; 23 } 24 } 25 }
10、输入一个数判定这个数是偶数还是奇数(if实现)
1 import java.util.Scanner; 2 3 public class Text9 { 4 public static void main(String[] args) { 5 Scanner input=new Scanner(System.in); 6 System.out.println("请输入一个数"); 7 int num = input.nextInt(); 8 if (num%2==0){ 9 System.out.println("这是一个偶数"); 10 }else { 11 System.out.println("这是一个奇数"); 12 } 13 } 14 }
11、输入一个数,判定这个数是工作日,还是休息日(switch)
1 import java.util.Scanner; 2 3 public class Text10 { 4 public static void main(String[] args) { 5 Scanner input=new Scanner(System.in); 6 System.out.println("请输入一个数"); 7 int num = input.nextInt(); 8 switch (num){ 9 case 1: 10 case 2: 11 case 3: 12 case 4: 13 case 5: 14 System.out.println("工作日"); 15 break; 16 case 6: 17 case 7: 18 System.out.println("休息日"); 19 break; 20 } 21 } 22 }
12、一年有四季,每季3个月。其中,12月、1月和2月为冬季,3月、4月和5月为春季……本实例将根据用户输入的月份来判断季节(用Switch语句实现)
1 import java.util.Scanner; 2 3 public class Text11 { 4 public static void main(String[] args) { 5 Scanner input=new Scanner(System.in); 6 System.out.println("请输入一个月份"); 7 int num = input.nextInt(); 8 switch (num){ 9 case 1: 10 case 2: 11 System.out.println("冬天"); 12 break; 13 case 3: 14 case 4: 15 case 5: 16 System.out.println("春天"); 17 break; 18 case 6: 19 case 7: 20 case 8: 21 System.out.println("夏天"); 22 break; 23 case 9: 24 case 10: 25 case 11: 26 System.out.println("秋天"); 27 break; 28 case 12: 29 System.out.println("冬天"); 30 break; 31 } 32 } 33 }
13、写一个用户登陆小程序,从控制台接收用户名和密码。 用户名:uip 密码:123456 如果用户名错误输出“非法用户!”,如果密码错误输出“密码错误!”,如果都正确输出“恭喜,登陆成功“!(用if…else语句实现)
1 import java.util.Scanner; 2 3 public class Text12 { 4 public static void main(String[] args) { 5 Scanner input=new Scanner(System.in); 6 System.out.println("请输入用户名"); 7 String name = input.next(); 8 if (name.equals("uip")){ 9 System.out.println("请输入登陆密码"); 10 String password=input.next(); 11 if (password.equals("123456")){ 12 System.out.println("恭喜,登陆成功!"); 13 }else { 14 System.out.println("密码错误!"); 15 } 16 }else { 17 System.out.println("非法用户!"); 18 } 19 } 20 }
14、读入一个表示年份的整数,判断这一年是否是闰年。如何判断一个年份是否是闰年。(能被400整除或者被4整除不被100整除)
1 import java.util.Scanner; 2 3 public class Text13 { 4 public static void main(String[] args) { 5 Scanner input=new Scanner(System.in); 6 System.out.println("请输入一个年份"); 7 int year = input.nextInt(); 8 if ((year%400==0)||(year%4==0&&year%100!=0)){ 9 System.out.println("是一个闰年"); 10 }else { 11 System.out.println("不是一个闰年"); 12 } 13 } 14 }
2:循环结构
1、使用三种循环打印输出100以内的数之和
1-1 while循环
1 public class Text10 { 2 public static void main(String[] args) { 3 int i=0; 4 int sum=0; 5 while (i<=100){ 6 sum=sum+i; 7 i++; 8 } 9 System.out.println(sum); 10 } 11 }
1-2 do.....while 循环
1 public class Text10 { 2 public static void main(String[] args) { 3 int i=0; 4 int sum=0; 5 do { 6 sum=sum+i; 7 i++; 8 }while (i<=100); 9 System.out.println(sum); 10 } 11 }
1-3 for循环
1 public class Text10 { 2 public static void main(String[] args) { 3 int sum=0; 4 for (int i = 0; i <=100 ; i++) { 5 sum=sum+i; 6 } 7 System.out.println(sum); 8 } 9 }
2、实现100-1000之间水仙花数(三位数,153=1^3+5^3+3^3)(153、370、371、407)
1 int i=100; 2 while (i<1000){ 3 int bWei=i/100; 4 int sWei=i/10%10; 5 int gWei=i%10; 6 if (i==bWei*bWei*bWei+sWei*sWei*sWei+gWei*gWei*gWei){ 7 System.out.println(i); 8 } 9 i++; 10 }
3、使用while、do-while以及for循环三种编程方式实现:计算100以内(包括100)的偶数,奇数之和
3-1 while
1 int i=0; 2 int sum=0; 3 while (i<=100){ 4 if (i%2==0){ 5 sum=sum+i; 6 } 7 i++; 8 } 9 System.out.println(sum);
3-2 do-while
1 int i=0; 2 int sum=0; 3 do { 4 if (i%2==0){ 5 sum=sum+i; 6 } 7 i++; 8 }while (i<=100); 9 System.out.println(sum);
3-3 for
1 int sum=0; 2 for (int i = 0; i <=100 ; i++) { 3 if (i%2==0){ 4 sum=sum+i; 5 } 6 } 7 System.out.println(sum); 8 }
4、打印100以内的所有奇数
1 public class Text13 { 2 public static void main(String[] args) { 3 for (int i = 0; i <100 ; i++) { 4 if (i%2!=0){ 5 System.out.println(i); 6 } 7 } 8 } 9 }
5、2012年培养学员25万人,每年增长25%。请问按此增长速度,到哪一年培训学员人数将达到100万人?
1 public class Text14 { 2 public static void main(String[] args) { 3 int year=2012; 4 double i=25; 5 while (i < 100) { 6 year++; 7 i=i+i*0.25; 8 } 9 System.out.println(""+year+"年学员人数达到100万人"); 10 } 11 }
6、读入一个表示年份的整数,判断这一年是否是闰年。如何判断一个年份是否是闰年。(能被400整除或者被4整除不被100整除)
1 public class Text15 { 2 public static void main(String[] args) { 3 for (int i = 1900; i <2021 ; i++) { 4 if (i%400==0||i%4==0 && i%100!=0){ 5 System.out.println(i); 6 } 7 } 8 } 9 }
7、本金10000元存入银行,年利率是千分之三,每过1年,将本金和利息相加作为新的本金。计算5年后,获得的本金是多少
1 public class Text26 { 2 public static void main(String[] args) { 3 int i=0; 4 double num=10000; 5 while (i<5){ 6 num=num+num*0.03; 7 i++; 8 } 9 System.out.println("5年后获得的本金为"+num); 10 } 11 }
8、计算1000以内所有不能被7整除的整数之和
1 public class Text16 { 2 public static void main(String[] args) { 3 int sum=0; 4 for (int i = 0; i <1000 ; i++) { 5 if (i%7!=0){ 6 sum=sum+i; 7 } 8 } 9 System.out.println(sum); 10 } 11 }
9、一张纸的厚度大约是0.08mm,对折多少次之后能达到珠穆朗玛峰的高度(8848.13m)
1 public class Text27 { 2 public static void main(String[] args) { 3 double i=0.08; 4 double sum=0;//对折高度 5 int num=0;//对折次数 6 while (sum<=8848130){ 7 sum=sum+i; 8 i=i*2; 9 num++; 10 } 11 System.out.println(num); 12 } 13 }
10、使用三种循环计算能被3整除并且能被5整除的数之和
10-1 while
1 public class Text17 { 2 public static void main(String[] args) { 3 int i=0; 4 int sum=0; 5 while (i<100){ 6 if (i%3==0 && i%5==0){ 7 sum=sum+i; 8 } 9 i++; 10 } 11 System.out.println(sum); 12 } 13 }
11、循环输出200到300之间所有能被5整除,或能被2整除并且能被3整除的数
1 public class Text18 { 2 public static void main(String[] args) { 3 for (int i = 200; i <300 ; i++) { 4 if (i%5==0||(i%2==0 && i%3==0)){ 5 System.out.println(i); 6 } 7 } 8 } 9 }
12、循环输入5个学生的成绩,计算这5个学生的总分,及平均分
1 import java.util.Scanner; 2 3 public class Text19 { 4 public static void main(String[] args) { 5 Scanner input=new Scanner(System.in); 6 int i=1; 7 int sum=0; 8 do { 9 System.out.println("输入你的第"+i+"成绩"); 10 int score = input.nextInt(); 11 i++; 12 sum=sum+score; 13 }while (i<=5); 14 System.out.println("成绩总和为"+sum); 15 int avg=sum/5; 16 System.out.println("平均成绩为"+avg); 17 } 18 }
13、输出加法表
1 import java.util.Scanner; 2 3 public class Text8 { 4 public static void main(String[] args) { 5 Scanner input=new Scanner(System.in); 6 System.out.println("请输入一个数"); 7 int num=input.nextInt(); 8 for (int i = 0; i <=num; i++) { 9 System.out.println(i+"+"+(num-i)+"="+num); 10 } 11 } 12 }
14、打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。1.程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位
1 public class Text20 { 2 public static void main(String[] args) { 3 for (int i = 100; i <=999 ; i++) { 4 int b=i/100; 5 int s=i/10%10; 6 int g=i%10; 7 if (i==b*b*b+s*s*s+g*g*g){ 8 System.out.println(i); 9 } 10 } 11 } 12 }
15、一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同
1 public class Text22 { 2 public static void main(String[] args) { 3 int i=10000; 4 while (i<100000){ 5 int w=i/10000; 6 int q=i/1000%10; 7 int b=i/100%10; 8 int s=i/10%10; 9 int g=i%10; 10 if (g==w && s==q){ 11 System.out.println(i); 12 } 13 i++; 14 } 15 } 16 }
16、计算周一到周五的学习时间的平均值
1 import java.util.Scanner; 2 3 public class Text23 { 4 public static void main(String[] args) { 5 Scanner input=new Scanner(System.in); 6 int i=1; 7 int sum=0; 8 int time=0; 9 while (i<=5){ 10 System.out.println("请输入周"+i+"的学习时间"); 11 time = input.nextInt(); 12 sum+=time; 13 i++; 14 } 15 System.out.println("学习总时长"+sum); 16 int avg=sum/5; 17 System.out.println("学习平均时长"+avg); 18 } 19 }
17、若干只鸡兔同在一个笼子里,从上面数,有35个头,从下面数,有94只脚。问笼中各有多少只鸡和兔?
1 public static void main(String[] args) { 2 for (int j = 0; j <=35 ; j++) { 3 int t=35-j; 4 if (j*2+t*4==94){ 5 System.out.println("j"+j); 6 System.out.println("t"+t); 7 } 8 } 9 } 10 }
1 import java.util.Scanner; 2 3 public class Text30 { 4 public static void main(String[] args) { 5 //从控制台输入一个正整数,计算该数的阶乘。例如输入5,阶乘为 5*4*3*2*1 6 Scanner input=new Scanner(System.in); 7 System.out.println("请输入一个正整数"); 8 int i = input.nextInt(); 9 int sum=i; 10 while (i>1){ 11 i--; 12 sum=sum*i; 13 System.out.println(sum); 14 } 15 } 16 }
19、用循环做出九九乘法表
1 public class Text31 { 2 public static void main(String[] args) { 3 for (int i = 1; i <=9 ; i++) { 4 for (int j = 1; j <=i ; j++) { 5 System.out.print(i+"*"+j+"="+i*j+" "); 6 } 7 System.out.println(); 8 } 9 } 10 }
20、可以从控制台连续输入数字,当输入的数字为0时不可以再输入。
1 import java.util.Scanner; 2 3 public class Text32 { 4 public static void main(String[] args) { 5 Scanner input=new Scanner(System.in); 6 int i; 7 do { 8 System.out.println("请输入一个数字"); 9 i = input.nextInt(); 10 System.out.println(i); 11 }while (i!=0); 12 13 } 14 }
21、计算 1+2-3+4-5+6-7....+100的结果
1 public class Text33 { 2 public static void main(String[] args) { 3 int sum=0; 4 for (int i = 2; i <=100 ; i++) { 5 if (i%2==0){ 6 sum=sum+i; 7 }else { 8 sum=sum-i; 9 } 10 } 11 System.out.println(1+sum); 12 } 13 }
22、计算十位顾客年龄比例(计算30岁以上,和30岁以下的比率)
1 import java.util.Scanner; 2 3 public class Demo5 { 4 public static void main(String[] args) { 5 //统计30岁以上的人数 6 Scanner input=new Scanner(System.in); 7 int age=30; 8 double sum=0; 9 for (int i = 1; i <=10 ; i++) { 10 System.out.println("请输入第"+i+"位客人年龄"); 11 age = input.nextInt(); 12 if (age>30){ 13 sum++; 14 } 15 } 16 System.out.println("30岁以上人数为"+sum); 17 System.out.println("30岁以上人员比率为"+(sum/10*100)+"%"); 18 } 19 }
23、循环输入学生成绩,并统计大于等于80分的学生比例(for实现,输入循环的次数)
1 import java.util.Scanner; 2 3 public class Text35 { 4 public static void main(String[] args) { 5 Scanner input=new Scanner(System.in); 6 int score=80; 7 double num=0; 8 for (int i = 1; i <=10 ; i++) { 9 System.out.println("请输入第"+i+"个学生成绩"); 10 score = input.nextInt(); 11 if (score>=80){ 12 num++; 13 } 14 } 15 System.out.println("大于80分的学生人数为"+num); 16 System.out.println("大于80分学生比例为"+(num/10*100)+"%"); 17 } 18 }
24、打印
1 public class Text36 { 2 public static void main(String[] args) { 3 //打印 4 // * 5 // ** 6 // *** 7 // **** 8 // ***** 9 for (int i = 1; i <=5 ; i++) { 10 for (int j = 1; j <=i ; j++) { 11 System.out.print("*"); 12 } 13 System.out.println(); 14 } 15 } 16 }
25、输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。
1 import java.util.Scanner; 2 3 public class Text28 { 4 public static void main(String[] args) { 5 Scanner input=new Scanner(System.in); 6 System.out.println("请输入字符"); 7 String str = input.nextLine(); 8 System.out.println(str); 9 int zm=0; 10 int kg=0; 11 int sz=0; 12 int qt=0; 13 for (int i = 0; i <str.length() ; i++) { 14 char c = str.charAt(i); 15 if (c>'a'&& c<'z'||c>'A'&&c<'Z'){ 16 zm++; 17 }else if (c==' '){ 18 kg++; 19 }else if (c>'0'&&c<'9'){ 20 sz++; 21 }else { 22 qt++; 23 } 24 } 25 System.out.println("字母的数量"+zm); 26 System.out.println("空格的数量"+kg); 27 System.out.println("数字的数量"+sz); 28 System.out.println("其他的数量"+qt); 29 } 30 }
26、一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在 第10次落地时,共经过多少米?第10次反弹多高?
1 public class Text21 { 2 public static void main(String[] args) { 3 double high=100; 4 double distance=100; 5 int i=1; 6 while (i<=10){ 7 high=high/2; 8 distance=distance+high*2; 9 i++; 10 } 11 System.out.println(distance); 12 System.out.println(high); 13 } 14 }
27、喝饮料游戏,满三瓶换一瓶,总共喝了多少瓶,基数50瓶
1 public class Demo2 { 2 public static void main(String[] args) { 3 int num=50; 4 for (int i = 1; i <=num; i++) { 5 if (i%3==0){ 6 num++; 7 } 8 } 9 System.out.println(num); 10 } 11 }
3:多重循环
1、用*拼一个菱形
1 public class Text23 { 2 public static void main(String[] args) { 3 //制作菱形 4 //上半部分 5 for (int i = 1; i <=4 ; i++) { 6 for (int j = 0; j <4-i ; j++) { 7 System.out.print(" "); 8 } 9 for (int a = 0; a <2*i-1 ; a++) { 10 System.out.print("*"); 11 } 12 System.out.println(); 13 } 14 //下半部分 15 for (int i = 1; i <4 ; i++) { 16 for (int j = 0; j <i ; j++) { 17 System.out.print(" "); 18 } 19 for (int b = 0; b <7-2*i; b++) { 20 System.out.print("*"); 21 } 22 System.out.println(); 23 } 24 } 25 }
1 public class Demo11 { 2 public static void main(String[] args) { 3 //九九乘法表 4 for (int i = 1; i <=9 ; i++) { 5 for (int j = 1; j <=i; j++) { 6 System.out.print(i+"*"+j+"="+i*j+" "); 7 } 8 System.out.println(); 9 } 10 } 11 }
3、制作5*5
1 public class Demo7 { 2 public static void main(String[] args) { 3 //5*5 4 for (int i = 1; i <=5 ; i++) { 5 for (int j = 1; j <=5 ; j++) { 6 System.out.print("*"); 7 } 8 System.out.println(); 9 } 10 } 11 }
4、用*打印直角三角形
1 public class Demo8 { 2 public static void main(String[] args) { 3 for (int i = 1; i <=5 ; i++) { 4 for (int j = 1; j <=i ; j++) { 5 System.out.print("*"); 6 } 7 System.out.println(); 8 } 9 } 10 }
5、制作平行四边形
1 public class Demo9 { 2 public static void main(String[] args) { 3 for (int i = 1; i <=5 ; i++) { 4 for (int j = 5-i; j >0 ; j--) { 5 System.out.print(" "); 6 } 7 for (int a =1; a <=5 ; a++) { 8 System.out.print("*"); 9 } 10 System.out.println(); 11 } 12 } 13 }
6、制作三角形
1 public class Demo10 { 2 public static void main(String[] args) { 3 for (int i = 1; i <=5 ; i++) { 4 for (int a =0; a <5-i ; a++) { 5 System.out.print(" "); 6 } 7 for (int j = 0; j <2*i-1 ; j++) { 8 System.out.print("*"); 9 } 10 System.out.println(); 11 } 12 } 13 }
7、1900-2021 闰年 每行两个
1 public class Text { 2 public static void main(String[] args) { 3 int count=0;//个数 4 for (int i = 1900; i <=2021 ; i++) { 5 if (i%400==0 || (i%4==0 && i%100!=0)){ 6 System.out.print(i+" ");//一整行输出 7 count++; 8 if (count%2==0){ 9 System.out.println(" "); 10 } 11 } 12 } 13 } 14 }
8、循环录入某学生5门课的成绩并计算平均分,如果某分数录入为负,停止录入并提示录入错误
1 import java.util.Scanner; 2 3 public class Text1 { 4 public static void main(String[] args) { 5 //方法一: 6 Scanner input=new Scanner(System.in); 7 int sum=0; 8 int i; 9 //获得成绩 10 for ( i = 1; i <=5 ; i++) { 11 System.out.println("请输入第"+i+"门课程成绩"); 12 int score=input.nextInt(); 13 if (score<0){ 14 System.out.println("录入错误"); 15 break; 16 } 17 sum+=score; 18 } 19 if (i==6){ 20 System.out.println("课程总分为"+sum); 21 double avg=sum/5; 22 System.out.println("课程平均分为"+avg); 23 } 24 //方法二: 25 //Scanner input=new Scanner(System.in); 26 // int sum=0; 27 // boolean pd=false;//判断 28 // for (int i = 1; i <=5 ; i++) { 29 // System.out.println("请输入第"+i+"门课程成绩"); 30 // int score=input.nextInt(); 31 // if (score<0){ 32 // pd=true; 33 // System.out.println("录入错误"); 34 // break; 35 // } 36 // sum+=score; 37 // } 38 // if (pd==false) { 39 //System.out.println("课程总分为" + sum); 40 // double avg = sum / 5; 41 // System.out.println("课程平均分为" + avg); 42 // } 43 } 44 }
9、循环录入Java课的学生成绩,统计分数大于等于80分的学生比例
1 import java.util.Scanner; 2 3 public class Text2 { 4 public static void main(String[] args) { 5 Scanner input=new Scanner(System.in); 6 System.out.println("请输入学生人数"); 7 int num=input.nextInt(); 8 int count=0;//大于80分学生人数 9 for (int i = 1; i <=num ; i++) { 10 System.out.println("请输入第"+i+"个学生成绩"); 11 int score=input.nextInt(); 12 if (score<80){ 13 continue; 14 } 15 count++; 16 } 17 System.out.println("成绩大于80分人数为"+count); 18 System.out.println("大于80分的学生比例为"+(count*1.0/num*100)+"%"); 19 } 20 }
10、1~10之间的整数相加,得到累加值大于20的当前数,使用循环进行累加,从1到10,判断累加值是否大于20,大于20则跳出循环并打印当前值
1 public class Text3 { 2 public static void main(String[] args) { 3 int sum=0; 4 for (int i = 1; i <=10 ; i++) { 5 sum+=i; 6 if (sum>20){ 7 System.out.println(i); 8 System.out.println(sum); 9 break; 10 } 11 } 12 } 13 }
11、求1-10之间的偶数和,判断当前是否为偶数,如果为奇数跳过,执行下一循环,如果为偶数,进行累加
1 public class Text4 { 2 public static void main(String[] args) { 3 int sum=0; 4 for (int i = 1; i <=10 ; i++) { 5 if (i%2==0){ 6 sum=sum+i; 7 continue; 8 } 9 } 10 System.out.println(sum); 11 } 12 }
12、使用循环输出 100、95、90、85.......5;可尝试使用for、while、do-while三种循环实现
1 public class Text5 { 2 public static void main(String[] args) { 3 //while 4 int i=100; 5 while (i>0){ 6 System.out.println(i); 7 i=i-5; 8 } 9 // //do-while 10 int a=100; 11 do { 12 System.out.println(a); 13 a-=5; 14 }while (a>0); 15 // //for 16 for (int j = 100; j >=5 ;j-=5 ) { 17 System.out.println(j); 18 } 19 } 20 }
13、从键盘输入一位整数,当输入1~7时,输出“星期一”~“星期日”; 输入其他数字时,提示用户重新输入
1 import java.util.Scanner; 2 3 public class Text6 { 4 public static void main(String[] args) { 5 Scanner input=new Scanner(System.in); 6 for (int i = 1; i <=7 ; i++) { 7 System.out.println("请输入一位整数"); 8 i=input.nextInt(); 9 switch (i){ 10 case 1: 11 System.out.println("星期一"); 12 break; 13 case 2: 14 System.out.println("星期二"); 15 break; 16 case 3: 17 System.out.println("星期三"); 18 break; 19 case 4: 20 System.out.println("星期四"); 21 break; 22 case 5: 23 System.out.println("星期五"); 24 break; 25 case 6: 26 System.out.println("星期六"); 27 break; 28 case 7: 29 System.out.println("星期日"); 30 break; 31 default: 32 System.out.println("请重新输入"); 33 break; 34 } 35 } 36 } 37 }
14、使用双重循环根据用户输入的数字,输出如下图形
1 import java.util.Scanner; 2 3 public class Text7 { 4 public static void main(String[] args) { 5 Scanner input=new Scanner(System.in); 6 System.out.println("请输入一个数字"); 7 int num=input.nextInt(); 8 for ( int i =1; i <=num ; i++) { 9 for (int j = 0; j<num-i ; j++) { 10 System.out.print(" "); 11 } 12 for (int a = 0; a <2*i-1; a++) { 13 System.out.print(i); 14 } 15 System.out.println(); 16 } 17 } 18 }
1、数组基本使用形式
1 public class Text8 { 2 public static void main(String[] args) { 3 //数据类型[] 数组名=new 数据类型[大小] 4 //声明数组 5 int[] scores; 6 //分配空间 7 scores=new int[5]; 8 //给数组进行赋值 9 scores[0]=90; 10 scores[1]=88; 11 scores[4]=77; 12 //使用数组 13 System.out.println(scores[2]); 14 System.out.println(scores[4]); 15 //声明并开辟空间 16 double[] height=new double[5];//0.0 17 String[] strs=new String[2];//null 18 char[] chars=new char[2];//空格( ) 19 boolean[] booleans=new boolean[2];//false 20 } 21 }
2、录入学生的5门成绩,使用数组
1 import java.util.Scanner; 2 3 public class Text9 { 4 public static void main(String[] args) { 5 //方法一: 6 int[] score={23,44,69,78,55}; 7 //方法二: 8 Scanner input=new Scanner(System.in); 9 int[] scores=new int[5]; 10 for (int i = 0; i <scores.length ; i++) { 11 System.out.println("请输入第"+(i+1)+"个学生成绩"); 12 scores[i]=input.nextInt(); 13 } 14 for (int i = 0; i <scores.length ; i++) { 15 System.out.print(scores[i]+" "); 16 } 17 } 18 }
3、输入5个学生成绩 求avg
1 public class Text10 { 2 public static void main(String[] args) { 3 int[] score={12,2,45,3,85}; 4 int sum=0; 5 // for (int i = 0; i <score.length ; i++) { 6 // sum+=score[i]; 7 // } 8 //增强for 9 for (int a:score) { 10 sum+=a; 11 } 12 double avg=sum/score.length; 13 System.out.println("平均分为"+avg); 14 } 15 }
4、有一个数列:8,4,2,1,23,344,12循环输出数列的值,求数列中所有数值的和
1 import java.util.Scanner; 2 3 public class Text11 { 4 public static void main(String[] args) { 5 Scanner input=new Scanner(System.in); 6 int[] num=new int[7]; 7 int sum=0; 8 boolean pd=false; 9 for (int i = 0; i <num.length ; i++) { 10 System.out.println("请输入第"+(i+1)+"个数"); 11 num[i]=input.nextInt(); 12 sum=sum+num[i]; 13 } 14 System.out.println("所有数值的和为"+sum); 15 } 16 }
5、有一个数列:8,4,2,1,23,344,12循环输出数列的值,从键盘中任意输入一个数据,判断数列中是否包含此数
1 import java.util.Scanner; 2 3 public class Text12 { 4 public static void main(String[] args) { 5 int[] num={8,4,2,1,23,344,12}; 6 Scanner input=new Scanner(System.in); 7 System.out.println("请输入一个数"); 8 int a=input.nextInt(); 9 boolean pd=false; 10 for (int nums:num) { 11 if (a==nums){ 12 pd=true; 13 break; 14 } 15 } 16 if (pd==true){ 17 System.out.println("包含此数"); 18 }else { 19 System.out.println("不包含此数"); 20 } 21 } 22 }
6、从键盘输入本次Java考试五位学生的成绩,求考试成绩最高分
1 import java.util.Scanner; 2 3 public class Text13 { 4 public static void main(String[] args) { 5 Scanner input=new Scanner(System.in); 6 int[] score=new int[5]; 7 for (int i = 0; i <score.length ; i++) { 8 System.out.println("请输入第"+(i+1)+"个学生成绩"); 9 score[i]=input.nextInt(); 10 } 11 //获得最大值、最小值 12 int max=score[0]; 13 int min=score[0]; 14 for (int a:score) { 15 if (a>max){ 16 max=a; 17 } 18 if (a<min){ 19 min=a; 20 } 21 } 22 System.out.println("最大值为"+max); 23 System.out.println("最小值为"+min); 24 } 25 }
7*、一组学员的成绩{99,85,82,63, 60},将它们按降序排列。要增加一个学员的成绩,将它插入成绩序列,并保持降序
1 public class Text14 { 2 public static void main(String[] args) { 3 int[] score={99,85,82,63,60,-1}; 4 int num=88; 5 //找到要插入的位置 6 int index=-1; 7 for (int i = 0; i <score.length ; i++) { 8 if (num>score[i]){ 9 index=i; 10 break; 11 } 12 } 13 System.out.println("新插入的值的下标"+index); 14 //移位 15 for (int i =score.length-1; i >index ; i--) { 16 score[i]=score[i-1]; 17 } 18 //添加新值 19 score[index]=num; 20 for (int a:score) { 21 System.out.print(a+" "); 22 } 23 } 24 }
8、求出4家店的最低手机价格
1 import java.util.Scanner; 2 3 public class Text15 { 4 public static void main(String[] args) { 5 Scanner input=new Scanner(System.in); 6 int[] price=new int[4]; 7 for (int i = 0; i <4 ; i++) { 8 System.out.println("请输入"+(i+1)+"家店的价格"); 9 price[i]=input.nextInt(); 10 } 11 //获得最小值 12 int min=price[0]; 13 for (int a:price) { 14 if (a<min){ 15 min=a; 16 } 17 } 18 System.out.println("最低价为第"+min); 19 } 20 }
9、数组存储5笔购物金额,在控制台输出并计算总金额
1 import java.util.Scanner; 2 3 public class Text16 { 4 public static void main(String[] args) { 5 Scanner input=new Scanner(System.in); 6 int[] price=new int[5]; 7 int sum=0; 8 for (int i = 0; i <5 ; i++) { 9 System.out.print("请输入"+(i+1)+"笔购物金额"); 10 price[i]=input.nextInt(); 11 sum+=price[i]; 12 } 13 for (int i = 0; i <price.length ; i++) { 14 System.out.println(price[i]); 15 } 16 System.out.println("总金额为"+sum); 17 } 18 }
10、输出100到1000的水仙花数
1 import java.util.Scanner; 2 3 public class Text17 { 4 public static void main(String[] args) { 5 Scanner input=new Scanner(System.in); 6 int[] num=new int[900]; 7 for (int i =100; i <1000 ; i++) { 8 num[i-100]=i;//num[i]的第一个i值为0; 9 } 10 for (int a:num) { 11 int b=a/100; 12 int s=a/10%10; 13 int g=a%10; 14 if (a==b*b*b+s*s*s+g*g*g){ 15 System.out.println(a); 16 } 17 } 18 } 19 }
11、定义数组,存放5个学生的成绩【成绩值自己设定】获得成绩之和,平均成绩,最小成绩,最大成绩。
1 import java.util.Scanner; 2 3 public class Text19 { 4 public static void main(String[] args) { 5 Scanner input=new Scanner(System.in); 6 int[] score=new int[5]; 7 int sum=0; 8 for (int i = 0; i <5 ; i++) { 9 System.out.println("请输入第"+(i+1)+"个人的成绩"); 10 score[i]=input.nextInt(); 11 sum=sum+score[i]; 12 } 13 System.out.println("总成绩为"+sum); 14 double avg=sum/5; 15 System.out.println("平均成绩为"+avg); 16 //获得最小成绩、最大成绩 17 int max=score[0]; 18 int min=score[0]; 19 for (int a:score) { 20 if (a>max){ 21 max=a; 22 } 23 if (a<min){ 24 min=a; 25 } 26 } 27 System.out.println("最小成绩为"+min); 28 System.out.println("最大成绩为"+max); 29 } 30 }
12、定义一个长度为10的int数组,统计数组中的最大值、最小值、以及奇数和偶数的个数
1 import java.util.Scanner; 2 3 public class Text20 { 4 public static void main(String[] args) { 5 Scanner input=new Scanner(System.in); 6 int[] num= new int[10]; 7 int count=0; 8 for (int i = 0; i <10 ; i++) { 9 System.out.println("请输入第"+(i+1)+"个数"); 10 num[i]=input.nextInt(); 11 } 12 int max=num[0]; 13 int min=num[0]; 14 for (int a:num) { 15 if (a>max){ 16 max=a; 17 } 18 if (a<min){ 19 min=a; 20 } 21 if (a%2==0){ 22 count++; 23 } 24 } 25 System.out.println("最大值为"+max); 26 System.out.println("最小值为"+min); 27 System.out.println("偶数个数为"+count); 28 System.out.println("奇数个数为"+(10-count)); 29 } 30 }
13、B哥去参加青年歌手大奖赛,有10个评委打分,(去掉一个最高一个最低)求平均分?
1 import java.util.Scanner; 2 3 public class Text21 { 4 public static void main(String[] args) { 5 Scanner input=new Scanner(System.in); 6 int[] num= new int[10]; 7 int sum=0; 8 for (int i = 0; i <10 ; i++) { 9 System.out.println("请输入第"+(i+1)+"个分数"); 10 num[i]=input.nextInt(); 11 sum+=num[i]; 12 } 13 //获得最大值、最小值 14 int max=num[0]; 15 int min=num[0]; 16 for (int a:num) { 17 if (a>max){ 18 max=a; 19 } 20 if (a<min){ 21 min=a; 22 } 23 } 24 double avg=(sum-max-min)/10; 25 System.out.println("平均分为"+avg); 26 } 27 }
1 public class Text18 { 2 public static void main(String[] args) { 3 //给定两个同类型的数组,将其合并成一个数组 4 int[] num={1,2,6,7}; 5 int[] num1={2,7,9,20,9}; 6 int[] a=new int[num.length+num1.length]; 7 for (int i = 0; i <a.length; i++) { 8 if (i<num.length) { 9 a[i] = num[i]; 10 }else { 11 a[i]=num1[i-num.length]; 12 } 13 System.out.print(a[i]+"\t"); 14 } 15 } 16 }
1 public class Test26 { 2 public static void main(String[] args) { 3 //将指定数组中的数组元素进行反转 4 //例如:{10,23,2,45,6}—>{6,45,2,23,10} 5 int[] a={10,23,2,45,6}; 6 for (int i = 0; i <a.length ; i++) { 7 System.out.print(a[i]+"\t"); 8 } 9 for (int i = 0; i <a.length/2 ; i++) { 10 int temp=a[i]; 11 a[i]=a[a.length-1-i]; 12 a[a.length-1-i]=temp; 13 } 14 for (int i = 0; i <a.length ; i++) { 15 System.out.print(a[i]+"\t"); 16 } 17 } 18 }
16、现在定义如下的一个数组:intoldArr[]={1,3,4,5,0,0,6,6,0,5,4,7,6,7,0,5},要求将以上数组中值为0的去掉,将不为0的值存入一个新的数组,生成的新数组为:intnewArr[]={1,3,4,5,6,6,5,4,7,6,7,5}
1 public class Text25 { 2 public static void main(String[] args) { 3 // 现在定义如下的一个数组: 4 // intoldArr[]={1,3,4,5,0,0,6,6,0,5,4,7,6,7,0,5}, 5 // 要求将以上数组中值为0的去掉,将不为0的值存入一个新的数组, 6 // 生成的新数组为:intnewArr[]={1,3,4,5,6,6,5,4,7,6,7,5} 7 int[] a={1,3,4,5,0,0,6,6,0,5,4,7,6,7,0,5}; 8 for (int i = 0; i <a.length ; i++) { 9 if (a[i]==0){ 10 continue; 11 } 12 System.out.print(a[i]+" "); 13 } 14 } 15 }
17、给定一个整型数组,数组成员10个,求该数组中第二大的数的下标
1 public class Test27 { 2 public static void main(String[] args) { 3 //给定一个整型数组,数组成员10个,求该数组中第二大的数的下标 4 int[] num={12,45,23,77,43,21,9,22,34,8,-1}; 5 int index=-1; 6 //找到最大值及下标 7 int max=num[0]; 8 for (int i = 0; i <num.length ; i++) { 9 if (num[i]>max){ 10 max=num[i]; 11 index=i; 12 } 13 } 14 System.out.println("最大值为"+max); 15 System.out.println("最大值下标为"+index); 16 //将数组最大值赋值给最后一位,并将最大值赋值为0 17 num[10]=num[index]; 18 num[index]=0; 19 int max1=num[0]; 20 for (int i = 0; i <num.length-1 ; i++) { 21 if (num[i]>max1){ 22 max1=num[i]; 23 index=i; 24 } 25 } 26 System.out.println("最大值为"+max1); 27 System.out.println("最大值下标为"+index); 28 } 29 }
1 public class Test1 { 2 public static void main(String[] args) { 3 int[] nums={45,2,7,1,9}; 4 for (int i = 0; i <nums.length-1 ; i++) { 5 for (int j = 0; j <nums.length-1-i ; j++) { 6 //两两比较小靠前 7 if(nums[j]<nums[j+1]){ 8 int temp=nums[j]; 9 nums[j]=nums[j+1]; 10 nums[j+1]=temp; 11 } 12 } 13 } 14 15 for (int a:nums) { 16 System.out.print(a+"\t"); 17 } 18 } 19 }
1 public class Test2 { 2 public static void main(String[] args) { 3 int[] scores={5,8,2,1,9}; 4 //排序 5 Arrays.sort(scores); 6 for (int a:scores) { 7 System.out.print(a+" "); 8 } 9 //查找 10 int i = Arrays.binarySearch(scores, 8); 11 System.out.println(i); 12 } 13 }
1 public class Test3 { 2 public static void main(String[] args) { 3 int[] scores={56,2,89,4,7,1}; 4 Arrays.sort(scores); //1,2,4,7,56,89 5 int key=4;//查找的数 6 int low=0;//最低下标 7 int high=scores.length-1;//最大下标 8 while (low<=high){ 9 int mid=(low+high)>>>1;//找到中间下标 10 int midValue=scores[mid];//获得中间下标值 11 if(midValue<key){//当前值和要查找的值比较 12 low=mid+1; 13 }else if(midValue>key){ 14 high=mid-1; 15 }else{ 16 System.out.println(mid); 17 break; 18 } 19 } 20 } 21 }