Java基础练习题(1)

431 阅读3分钟

f83af3e9b3bf4a02adb6513df906c643~tplv-k3u1fbpfcp-zoom-crop-mark-3024-3024-3024-1702.image.png 开启掘金成长之旅!这是我参加「掘金日新计划·12月更文挑战」的第一天,点击查看活动详情

前言

好多掘友们在学习完Java基础语法后,没有相应的练手题目,今天我整理了几道比较经典的Java基础练习题,并配有我个人的理解与分析。

涉及的知识点

  1. 变量、数组
  2. 运算符:基本运算符、关系运算符、逻辑运算符...
  3. 程序流程控制:if、switch;for、while;死循环、循环嵌套
  4. 跳转关键字:break、continue、return
  5. 方法
  6. 键盘录入、随机数
  7. ...

题目一:买机票

需求

  • 机票价格按照淡季旺季、头等舱和经济舱收费、输入机票原价、月份和头等舱或经济舱。
  • 按照如下规则计算机票价格:旺季(5-10月)头等舱9折,经济舱8.5折,淡季(11月到来年4月)头等舱7折,经济舱6.5折。

分析

  1. 键盘录入机票原价、月份、头等舱或经济舱
  2. 先判断月份是淡季还是旺季
  3. 继续判断当前机票是经济舱还是头等舱
  4. 根据实际情况计算出对应的价格
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 + "个质数");
       
    }
}