while例题
非固定次数循环while 和 do-while
任务一: 计算成绩和人数。
由用户输入多个学员成绩,当输入-1时结束循环,输出一共输入多少人,和输入的这些学员的总分数,不能把-1加进去。
public class C1 {
public static void main(String[] args) {
int a=0,i=1;
int sum = 0;
Scanner input=new Scanner(System.in);
while (i <= 100)
{
System.out.println("请输"+i+"为成绩");
a=input.nextInt();
if(a==-1)break;
else
sum+=a;
i++;
}
System.out.println((i-1)+"位同学成绩,总成绩位:"+sum);
}
}
任务二:计算可乐瓶数
50瓶可乐,每喝三瓶给你一瓶,请问最后喝了多少瓶.
public class C1 {
public static void main(String[] args) {
int a=0,i=1;
int sum = 0;
while (i<= 50)
{
if(i%3==0) sum+=2;
else
sum+=1;
i ++;
}
System.out.println((i-1)+"位同学成绩,总成绩位:"+sum);
}
}
任务三:
判断一个数是否是素数。
public class C1 {
public class C1 {
public static void main(String[] args) {
int a=0,i=2;
int x=1;
Scanner input=new Scanner(System.in);
System.out.println("请输数");
a=input.nextInt();
while(i<=a/2){
if(a%i==0){x+=1;
System.out.println("不是素数");}
i++;
break;
}
if(x==1)
System.out.println("是素数");
}
}
任务四:
输入一批整数,使用循环求出最大值与最小值,输入0时结束
public static void main(String[] args) {
// TODO Auto-generated method stuba
Scanner sc = new Scanner(System.in);
System.out.println("请输入整数");
int max;
int min;
int num;
min=max=num = sc.nextInt();
while (num != 0) {
if (num < min)
min = num;
if (num > max)
max = num;
System.out.println("请继续输入,输入0结束");
num = sc.nextInt();
}
System.out.println("最大值max=" + max + " 最小值min=" + min);
}
选做题:
输入年月日,输出此日期是一年中的第几天,判断平年和闰年的情况。
使用知识点:switch、循环。
运行如图:
public static void main(String[] args) {
Scanner input=new Scanner(System.in);
for(int i=1;i<=3;i++){
System.out.println("请输入年");
int a=input.nextInt();
System.out.println("请输入月");
int b=input.nextInt();
System.out.println("请输入日");
int c=input.nextInt();
if(a%4==0&&a%100!=0||a%400==0){
switch(b){
case 1:System.out.println("今天是今年的第"+c);break;
case 3:System.out.println("今天是今年的第"+(31+29+c));break;
case 5:System.out.println("今天是今年的第"+(31*2+30+29+c));break;
case 7:System.out.println("今天是今年的第"+(31*3+30*2+29+c));break;
case 8:System.out.println("今天是今年的第"+(31*4+30*2+29+c));break;
case 10:System.out.println("今天是今年的第"+(31*5+30*3+29+c));break; case 12:System.out.println("今天是今年的第"+(31*6+30*4+29+c));break;
case 4:System.out.println("今天是今年的第"+(31*2+29+c));break;
case 6:System.out.println("今天是今年的第"+(31*3+29+30+c));break;
case 9:System.out.println("今天是今年的第"+(31*5+30*2+29+c));break;
case 11:System.out.println("今天是今年的第"+(31*6+30*3+29+c));break;
default :System.out.println("今天是今年的第"+(31+c));break;
}
}
else{
switch(b){
case 1:System.out.println("今天是今年的第"+c);break;
case 3:System.out.println("今天是今年的第"+(31+28+c));break;
case 5:System.out.println("今天是今年的第"+(31*2+30+28+c));break;
case 7:System.out.println("今天是今年的第"+(31*3+30*2+28+c));break;
case 8:System.out.println("今天是今年的第"+(31*4+30*2+28+c));break;
case 10:System.out.println("今天是今年的第"+(31*5+30*3+28+c));break;
case 12:System.out.println("今天是今年的第"+(31*6+30*4+28+c));break;
case 4:System.out.println("今天是今年的第"+(31*2+28+c));break;
case 6:System.out.println("今天是今年的第"+(31*3+28+30+c));break;
case 9:System.out.println("今天是今年的第"+(31*5+30*2+28+c));break;
case 11:System.out.println("今天是今年的第"+(31*6+30*3+28+c));break;
default :System.out.println("今天是今年的第"+(31+c));break;
}
}
}