一、闰年的判断
- 要求:键盘录入年份,判断是否为闰年。
- 判断方法:能被4整除,且不能被100整除,或者能被400整除,则为闰年
代码:
import java.util.Scanner;
//闰年的判断
public class LeapYear {//闰年类
public static void main(String[] args) {//程序主入口
Scanner scan = new Scanner(System.in);//创建键盘录入对象
System.out.println("请输入年份:");//控制台输出提示信息
int year = scan.nextInt();//记录键盘录入的年份
if(year%4==0 && year%100!=0 || year%400==0) {//根据判断条件判断是否为闰年
System.out.println(year+"是闰年");//若判断条件为true则输出这个
}else {
System.out.println(year+"不是闰年");//否则输出这个
}
/*
* 或者使用三目运算符 boolean ? s1 : s2;
* 如果boolean为true,则输出s1,若为false则输出s2
*/
// boolean flag = (year%4==0 && year%100!=0)
// ||
// year%400==0;
// String str = flag ? year+"是闰年" : year+"不是闰年";
// System.out.println(str);
}
}
运行结果:
二、柜台收银程序
- 要求:某顾客购买某商品,要求输入单价、数量以及顾客消费卡里面的余额,超市有优惠活动(满300打9折,满500打8折,否则没优惠),通过计算,算出顾客消费卡余额是否够付款,若够则扣除消费金额并给出提示; 若不够则给出提示欠的金额。
- 分析:要求输入需用到Scanner;判断是否满足优惠条件需用的if_esle以及if_esle if语句。
代码:
import java.util.Scanner;
//柜台收银程序
public class Cashier {//类名
public static void main(String[] args) {//主函数
Scanner scan = new Scanner(System.in);//键盘录入
System.out.println("请输入单价:");//提示输入单价
double price = scan.nextDouble();//记录单价
System.out.println("请输入数量:");//提示输入数量
double amount = scan.nextDouble();//记录数量
System.out.println("请输入消费卡余额:");//提示输出消费卡余额
double money = scan.nextDouble();//记录余额
//计算总价(单价*数量)
double totalPrice = price*amount;
if(totalPrice>=300 && totalPrice<500){ //满300
totalPrice*=0.9; //打9折
}else if(totalPrice >= 500) {//满500
totalPrice*=0.8;//打8折
}
if(money>=totalPrice){ //消费卡余额够
double change = money-totalPrice; //计算余额(给的钱-总价)
System.out.println("总价为:"+totalPrice+",余额为:"+change);
}else{ //不够
System.out.println("SORRY!您的消费卡余额不足!,还差"+(totalPrice-money));
}
}
}
运行结果:
三、命令功能解析
- 要求:输入数字1、2、3显示不同功能。
- 分析:使用switch_case语句
代码:
import java.util.Scanner;
public class CommandBySwitch {//类名
public static void main(String[] args) {//主函数
Scanner scan = new Scanner(System.in);//键盘录入
System.out.println("请选择功能: 1.查询话费 2.修改密码 0.退出");//提示信息
int input = scan.nextInt();//记录键盘录入的数字
//switch_case语句
switch(input){
case 1:
System.out.println("查询话费");//若输入的是1,则输出
break;
case 2:
System.out.println("修改密码");//若输入的是2,则输出
break;
case 0:
System.out.println("欢迎下次再来");//若输入的是0,则输出
break;
default:
System.out.println("输入错误");//若输入其他数,则输出
}
}
}
运行结果:
四、猜数字小游戏
- 要求:随机生成一个1-1000的整数,让人猜。这里生成的随机数显示出来为了方便验证程序的运行
- 分析:随机数生成需Math.random()表示随机生成0-1的数,可以通过运算得到1-1000的数;此程序每输入猜的数就需要判断,因此可以使用do_while语句,do语句下通过if判断是否正确。
import java.util.Scanner;
//猜数字小游戏
public class Guessing {//类名
public static void main(String[] args) {//主函数
Scanner scan = new Scanner(System.in);//键盘录入
int num = (int)(Math.random()*1000+1); //1到1000之内的随机数
System.out.println(num); //显示生成的随机数,以便我们观察程序
int guess;
do{
System.out.println("猜吧!");//提示
guess = scan.nextInt(); //记录输入的数
if(guess==0){//如果输入0,则退出程序
break;
}
if(guess>num){//猜的数大于要猜的数
System.out.println("太大了");//输出提示信息
}else if(guess<num){//猜的数小于要猜的数
System.out.println("太小了");//输出提示信息
}
}while(guess!=num); //如果猜的数不是要猜的数,则进行do,直到猜对了退出do_while语句
if(guess==num){//如果猜对了,给出提示
System.out.println("恭喜你,猜对了!");
}else{//输入0时退出do_while,进入else,输出提示语句
System.out.println("下次再来吧!");
}
}
}
运行结果:
五、模拟随机加法运算
- 要求:程序随机给出10道加法题目,答题者输入答案,最后统计成绩,输入-1退出程序。
- 分析:需要生成随机数Math.random();判断是否正确需if语句;要进行10此运算可用for循环。
import java.util.Scanner;
public class Addition {//类名
public static void main(String[] args) {//主函数
Scanner scan = new Scanner(System.in);//键盘录入对象
int score = 0; //用于记分
for(int i=1;i<=10;i++){ //10次
int a = (int)(Math.random()*100); //随机生成0-100的整数,记为加数a
int b = (int)(Math.random()*100); //随机生成0-100的整数,记为加数b
int result = a+b; //计算和,并记录
System.out.println("("+i+")"+a+"+"+b+"=?"); //打印出题目
System.out.println("算吧!");//提示信息
int answer = scan.nextInt(); //玩家答题,输入答案
if(answer==-1){ //判断答案,如果输入-1退出for循环
break;
}
if(answer==result){ //计算对了
System.out.println("答对了");
score += 10; //得10分
}else{//答错了扣5分
score -= 5;
System.out.println("答错了");
}
}
System.out.println("得分为:"+score);//输出成绩
}
}
运行结果:
总结
- 这些小程序都是通过基本语句实现的,实现方法有很多种,跟我一样开始学习的java的伙伴们,循环块就可以使用不同的循环来实现。
- 这些语句其实不难,但当要实现某些简单的功能时,有时却无从下手,我想这可能是理解不够以及训练的较少,代码真的要自己多敲敲。
- 此外我觉得自己可以想想有没有其他方法,我想这对以后的学习,以及编程的思想有一些帮助吧。
- 希望在此和跟我一样的人共同进步吧!