2019-6-26 [JavaSE] While循环 4个练习题

1.计算成绩和人数

由用户输入多个学员成绩,当输入-1时结束循环,输出一共输入多少人,和输入的这些学员的总分数,不能把-1加进去

/*
//非固定次数循环while 和 do-while
任务一: 计算成绩和人数。 
由用户输入多个学员成绩,当输入-1时结束循环,
输出一共输入多少人,和输入的这些学员的总分数,
不能把-1加进去。
*/
//法1---------
import java.util.Scanner;
public class Demo2{
	public static void main(String[] args){
		Scanner input = new Scanner(System.in);
		int score ;//成绩
		int sum = 1;//总成绩
		int count = 0;//循环码
		int count2 = -1;//人数统计,-1是因为输入-1需要被记一次数
		do{
			System.out.println("请输入成绩:");
			score = input.nextInt();
			count2 ++;
			sum += score;
			if (score == -1)
			{	count = -1;//跳出循环
			}			
		}
		while (count != -1);
		System.out.println("总成绩"+sum+"一共有"+count2+"个学生");
	}
}
//法二--------------
		Scanner input = new Scanner(System.in);
		int score  ;
		int count = 0;
		int sum = 0;
		do {
			System.out.println("输入成绩:");
			score = input.nextInt();
			if(score == -1) {
				break;
			}
			count ++;
			sum += score;		
		}while(score != -1);
		System.out.println(sum+","+count);

2.查询商品价格并计算总金额

循环输入商品编号,显示对应的商品价格,输入“n”结束循环 ,
并计算总金额。
在这里插入图片描述

/*
任务二:查询商品价格,计算金额
循环输入商品编号,显示对应的商品价格,
输入“n”结束循环 ,
并且计算金额。
*/
//法一:while switch-----------------
import java.util.Scanner;
public class Demo4{
	public static void main(String[] args){
		Scanner input = new Scanner(System.in);
		int score;//编号
		int sum = 0;//总金额
		String sw = "y";//是否继续
		System.out.println("***********商品**********");
		System.out.println("1.T恤;2.网球鞋 3.网球拍");		
		System.out.println("*************************");
		while (!sw.equals("n")){
			System.out.println("请输入编号:");
			score = input.nextInt();
			switch (score)
			{
			case 1:
				System.out.println("T恤:  ¥245");
				System.out.println("是否继续(y/n)");
				sw = input.next();
				sum += 245;
				break;
			case 2:
				System.out.println("网球鞋 ¥570");
				System.out.println("是否继续(y/n)");
				sw = input.next();
				sum += 570;
				break;
			case 3:
				System.out.println("网球拍 ¥380");
				System.out.println("是否继续(y/n)");
				sw = input.next();
				sum += 380;
				break;
			}
		}
		System.out.println("总金额:"+sum);
		System.out.println("程序结束");
	}
}
//法二:do while,switch--------
		Scanner superman = new Scanner(System.in);
		int productNo ;
		String next;
		double sum = 0;
		System.out.println("***********商品***********");
		System.out.println("  1.T恤;2.网球鞋;3.网球拍;");
		System.out.println("*****************************");
		do{
			System.out.print("输入编号:");
			productNo = superman.nextInt();
			switch(productNo){
			case 1:
				System.out.println("T恤\t¥245");
				sum = sum + 245;
				break;
			case 2:
				System.out.println("网球鞋\t¥570");
				sum = sum + 570;
				break;
			case 3:
				System.out.println("网球拍\t¥380");
				sum = sum + 380;
				break;
			default:
				System.out.println("输入错误!");
				break;
			}
			System.out.print("是否继续(y/n):");
			next = superman.next();
		}while(next.equals("y"));
		System.out.println("总金额:"+sum);

3.输出摄氏温度与华氏温度的对照表

任务四:
输出摄氏温度与华氏温度的对照表,
要求它从摄氏温度0度到250度,每隔20度为一项,
对照表中的条目不超过10条。
转换关系:华氏温度 = 摄氏温度 * 9 / 5.0 + 32

//do-while-----------
public class Demo5 {
	public static void main(String[] args) {
		int s = -20;
		double hua;
		do{
			s += 20;
			hua = s*9/5.0+32;
			System.out.println("摄氏温度:"+s+"华氏温度:"+hua);
		}
		while (s < 240);		
	}
}

4.输入年月日,输出此日期是一年中的第几天,判断平年和闰年的情况

输入年月日,输出此日期是一年中的第几天,判断平年和闰年的情况。
使用知识点:switch、循环。
在这里插入图片描述

import java.util.Scanner;
public class Demo6{
	public static void main(String[] args){
		int y,m,d;
		int sum = 0;
		int run;
		boolean tag;
		Scanner input = new Scanner(System.in);
		System .out.println("请输入年:");
		y = input.nextInt();
		System .out.println("请输入月:");
		m = input.nextInt();
		System .out.println("请输入日:");
		d = input.nextInt();
		if ((y%4 == 0 &&  y % 100 != 0) || y% 400 == 0){
			System .out.println("是闰年");
			tag = true; 
			run = 1;
		}else{
			System .out.println("是平年");
			tag = false; 
			run = 0;
		}
		switch (m){
		case 1:
			sum = d;//31
			break;
		case 2:
			sum = d+run+31;//28
			break;
		case 3:
		    sum = d+run+59;//31
			break;
		case 4:
			sum = d+run+90;//30
			break;
		case 5:
			sum = d+run+120;//31
			break;
		case 6:
			sum = d+run+151;//30
			break;
		case 7:
			sum = d+run+181;//31
			break;
		case 8:
			sum = d+run+212;//31
			break;
		case 9:
			sum = d+run+242;//30
			break;
		case 10:
			sum = d+run+273;//31
			break;
		case 11:
			sum = d+run+303;//30
			break;
		case 12:
			sum = d+run+333;//31
			break;
		}
		System.out.print(y+"年"+m+"月"+d+"日是");
		System.out.print("这一年的第"+sum+"天");
	}
}
  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值