循环:重复执行一段代码
while循环
while(条件){代码}条件成立 循环代码执行,继续判断条件,直到条件不成立
intage=5;while(age<18){System.out.println("领牛奶");}for循环
for(定义变量1;设定条件2;更新变量的值3){循环代码4}
执行顺序:1 2 4 3 2 4 3…
do while 循环:
do(循环代码) while(条件);//先执行一次代码后再判断
break:结束循环
continue:继续 跳过本次循环代码,继续下次循环
刷题案例
P5719 【深基4.例3】分类平均
题目描述
给定n nn和k kk,将从 1 到n nn之间的所有正整数可以分为两类:A 类数可以被k kk整除(也就是说是k kk的倍数),而 B 类数不能。请输出这两类数的平均数,精确到小数点后1 11位,用空格隔开。
数据保证两类数的个数都不会是0 00。
输入格式
输入两个正整数n nn与k kk。
输出格式
输出一行,两个实数,分别表示 A 类数与 B 类数的平均数。精确到小数点后一位。
输入输出样例 #1
输入 #1
100 16输出 #1
56.0 50.1说明/提示
数据保证,1 ≤ n ≤ 10000 1 \leq n\leq 100001≤n≤10000,1 ≤ k ≤ 100 1 \leq k \leq 1001≤k≤100。
importjava.util.Scanner;publicclassMain{publicstaticvoidmain(String[]args){Scannersc=newScanner(System.in);intn=sc.nextInt();intk=sc.nextInt();doublesumA=0;doublesumB=0;intcA=0;intcB=0;for(inti=1;i<=n;i++){if(i%k==0){sumA=sumA+i;cA=cA+1;}else{sumB=sumB+i;cB=cB+1;}}System.out.printf("%.1f ",sumA/cA);System.out.printf("%.1f",sumB/cB);}}将输入的数字反转输出 12345—>54321
importjava.util.Scanner;classMain{publicstaticvoidmain(String[]args){Scannersc=newScanner(System.in);intnum=sc.nextInt();intn=num%10;for(;num>0;num=num/10){System.out.print(num%10);}}}计算1200年到2026年的闰年个数
classTest{staticvoidmain(){intsum=0;for(intyear=1200;year<=2026;year++){if(year%4==0&&year%100!=0||year%400==0){sum++;}}System.out.println("1200~2026年的闰年个数是"+sum);}}统计三位数中有几个水仙花数
classTest{staticvoidmain(){ints=0;for(intnum=100;num<=999;num++){inta=num/100;intb=num/10%10;intc=num%10;if(a*a*a+b*b*b+c*c*c==num){s++;}}System.out.println("三位数中水仙花数的个数是"+s);}}