开启掘金成长之旅!这是我参加「掘金日新计划·12月更文挑战」的第一天,点击查看活动详情
前言
好多掘友们在学习完Java基础语法后,没有相应的练手题目,今天我整理了几道比较经典的Java基础练习题,并配有我个人的理解与分析。
涉及的知识点
- 变量、数组
- 运算符:基本运算符、关系运算符、逻辑运算符...
- 程序流程控制:if、switch;for、while;死循环、循环嵌套
- 跳转关键字:break、continue、return
- 方法
- 键盘录入、随机数
- ...
题目一:买机票
需求
- 机票价格按照淡季旺季、头等舱和经济舱收费、输入机票原价、月份和头等舱或经济舱。
- 按照如下规则计算机票价格:旺季(5-10月)头等舱9折,经济舱8.5折,淡季(11月到来年4月)头等舱7折,经济舱6.5折。
分析
- 键盘录入机票原价、月份、头等舱或经济舱
- 先判断月份是淡季还是旺季
- 继续判断当前机票是经济舱还是头等舱
- 根据实际情况计算出对应的价格
import java.util.Scanner;
public static int getprice(int ticket,int seat,double v0,double v1){
if(seat == 0){
//头等舱
ticket = (int)(ticket * v0);
}else if(seat == 1){
//经济舱
ticket = (int)(ticket * v1);
}else{
System.out.println("没有这个舱位");
}
return ticket;
}
public class Test1{
public static void main(String[] args){
//1.键盘录入机票原价、月份、头等舱或经济舱
Scanner sc = new Scanner(System.in);
System.out.println("请输入机票的原价“);
int ticket = sc.nextInt();
System.out.println("请输入当前月份“);
int month = sc.nextInt();
System.out.println("请输入当前购买的舱位 0 头等舱 1 经济舱");
int seat = =sc.nextInt();
//2.先判断月份是淡季还是旺季
if(month>= 5 && month <= 10){
//3. 继续判断当前机票是经济舱还是头等舱
//旺季
ticket = getprice(ticket,seat,0.9,0.85);
}else if((month >= 1 && month <= 4)||(month >= 11 && month <= 12)){
//淡季
ticket = getprice(ticket,seat,0.7,0.65);
}else{
//表示键盘录入的月份是一个非法数据
System.ou.println("键盘录入的月份不合法");
}
System.ou.println(ticket);
}
题目二:找质数
需求
判断101-200之间有多少个素数,并输出所有素数。
分析
将该问题简化为判断某个数是不是质数: 思路:
int i = 7;
boolean flag = true;
for(int j = 2;j<i;j++){
//j表示2-99之间的每一个数字
if(i%j == 0){
flag = false;
break;
}
}
所以,想要知道101-200之间有多少质数,只需要遍历101-200,判断每一个数是不是质数。
public class Test2{
public static void main(String[] args){
//定义一个变量用来统计有多少个质数
int count = 0;
//外循环:遍历101~200这个范围,依次得到这个范围之内的每一个数字
for(int i = 101;i <= 200;i++){
//i依次表示循环中的每一个数字
//继续判断i是否为一个质数
boolean flag = true;
//内循环:判断当前数字是一个质数
for(int j = 2;j<i;j++){
if(i%j == 0){
flag = false;
//跳出单层循环,内循环
break;
}
}
if(flag){
System.out.println("当前数字"+i+"个质数");
count++;
}
}
System.out.println("一共有" + count + "个质数");
}
}