用Java編寫(xiě)經(jīng)典小程序
如果是剛接觸或者剛學(xué)習(xí)java,練習(xí)一些基礎(chǔ)的算法還是必須的,可以提升思維和語(yǔ)法的使用
1、輸出兩個(gè)int數(shù)中的最大值
import java.util.Scanner;
public class demo {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("請(qǐng)依次輸入兩個(gè)整數(shù):a,b(以空格隔開(kāi))");
/*比較兩個(gè)數(shù)的大小*/
int a = scanner.nextInt();
int b = scanner.nextInt();
int max;
if(a >= b){
max = a;
}else {
max = b;
}
System.out.println("最大值為"+max);
}
}
}
2、輸出三個(gè)int數(shù)中的最大值
package demo;
import java.util.Scanner;
public class demo {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("請(qǐng)依次輸入兩個(gè)整數(shù):a,b(以空格隔開(kāi))");
int a = scanner.nextInt();
int b = scanner.nextInt();
int c = scanner.nextInt();
scanner.close();
/*方法一*/
int d=(a>b)?a:b;
int e=(d>c)?d:c;
System.out.println("最大值為"+e);
/*方法二*/
if(a>b && a>c){
System.out.println("最大值為"+a);
}else if(b>c && b>a){
System.out.println("最大值為"+b);
}else if(c>b && c>a){
System.out.println("最大值為"+c);
}else{
System.out.println("出現(xiàn)異常");
}
}
}
3、編寫(xiě)程序判斷某一個(gè)年份是否是閏年
package demo;
import java.util.Scanner;
/*判斷閏年
由用戶輸入任意一個(gè)年份,能被4整除但不能被100整除,或者能被400整除,是閏年。
要求判斷一個(gè)年份是否為閏年。
要求輸出:此年份是否是閏年
*/
public class demo {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("請(qǐng)輸入年份:");
int year = scanner.nextInt();
/*方法一*/
if((year % 4 ==0 && year % 100 !=0) || year%400 ==0){
System.out.println("這個(gè)年份是閏年");
}else{
System.out.println("這個(gè)年份不是閏年");
}
/*方法二*/
boolean isLeapYear = (year % 4 ==0 && year % 100 !=0) || year%400 ==0;
String string = isLeapYear?year+"是閏年":year+"不是閏年";
System.out.println(string);
}
}
4、完成成績(jī)等級(jí)輸出程序:如果用戶輸入的分?jǐn)?shù)正確(0-100),則根據(jù)表-1中的規(guī)則計(jì)算該分?jǐn)?shù)所對(duì)應(yīng)的的級(jí)別,并計(jì)算結(jié)果。

package demo;
import java.util.Scanner;
/*
* 成績(jī)等級(jí)劃分表
* >= 90 A
* >=80 B
* >=60 C
* <60 D
*
* 分?jǐn)?shù)范圍:0-100
*
* 需要有2個(gè)判斷*/
public class demo {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("請(qǐng)輸入分?jǐn)?shù):");
double score = scanner.nextDouble();
scanner.close();
if(score < 0 || score >100){
System.out.println("輸入的分?jǐn)?shù)不在0-100之間,不符合要求");
}else if(score >= 90){
System.out.println("A");
}else if(score >= 80){
System.out.println("B");
}else if(score >= 60){
System.out.println("C");
}else{
System.out.println("D");
}
}
}
5、完成命令解析程序:有一個(gè)命令解析程序,該程序提供三個(gè)功能選型供用戶選擇,用戶選擇某功能后,程序在界面上輸出用 戶所選擇的的功能名稱。程序的交互如圖:

package demo;
import java.util.Scanner;
/*
* 有一個(gè)命令解析程序,該程序提供三個(gè)功能選型供用戶選擇,
* 用戶選擇某功能后,程序在界面上輸出用戶所選擇的的功能名稱。
*
* */
public class demo {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("請(qǐng)選擇功能:1.顯示全部記錄 2.查詢登錄記錄 0.退出");
int command = scanner.nextInt();
scanner.close();
switch (command) {
case 0:
System.out.println("歡迎使用");
break;
case 1:
System.out.println("顯示全部記錄……");
break;
case 2:
System.out.println("查詢登錄記錄……");
break;
default:
System.out.println("輸入錯(cuò)誤!");
}
}
}
6、完成收銀柜臺(tái)收款程序:編寫(xiě)一個(gè)收銀柜臺(tái)收款程序,根據(jù)單價(jià)、購(gòu)買(mǎi)數(shù)量以及收款進(jìn)行計(jì)算并輸出應(yīng)收金額和找零;當(dāng)總價(jià)大于或者等于500,享受8折優(yōu)惠??刂婆_(tái)交互如下:

package demo;
import java.util.Scanner;
/*
* 需求:
* 編寫(xiě)一個(gè)收銀柜臺(tái)收款程序。根據(jù)單價(jià)、購(gòu)買(mǎi)數(shù)量以及收款進(jìn)行計(jì)算并輸出應(yīng)收金額和找零;
* 當(dāng)總價(jià)大于或者等于500,享受8折優(yōu)惠。
*
*/
public class demo {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("請(qǐng)輸入單價(jià)(¥):");
double price = scanner.nextDouble();
System.out.println("請(qǐng)輸入數(shù)量:");
double amount = scanner.nextDouble();
System.out.println("請(qǐng)輸入收款金額:");
double count = scanner.nextDouble();
double totalMoney = price*amount;
if(totalMoney > 500){
totalMoney = totalMoney*0.8;
}
double change = count - totalMoney;
System.out.println("應(yīng)收金額為:"+totalMoney + "找零為:"+change);
}
}
7、java從鍵盤(pán)輸入三個(gè)整數(shù),實(shí)現(xiàn)從小到大排序。
package demo;
import java.util.Scanner;
/*
* java從鍵盤(pán)輸入三個(gè)整數(shù),實(shí)現(xiàn)從小到大排序
*
**/
public class demo {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("請(qǐng)輸入三個(gè)整數(shù),以空格隔開(kāi):");
int a = scanner.nextInt();
int b = scanner.nextInt();
int c = scanner.nextInt();
scanner.close();
System.out.println("輸入的值為:a = " + a + ", b = " + b + ", c = " + c);
if(a > b){
if ( b > c) {
System.out.println("排序后的值為:" + c + "," + b + "," + a);
}else if( c > a){
System.out.println("排序后的值為:" + b + "," + a + "," + c);
}else{
System.out.println("排序后的值為:" + b + "," + a + "," + c);
}
}else{
if(c < a){
System.out.println("排序后的值為:" + c + "," + a + "," + b);
}else if(c > b){
System.out.println("排序后的值為:" + a + "," + b + "," + c);
}else{
System.out.println("排序后的值為:"+ a + "," + c + "," + b);
}
}
}
}
8、計(jì)算個(gè)人所得稅 北京地區(qū)的個(gè)人所得稅計(jì)算公式:應(yīng)納稅額 = (工資薪金所得 - 扣除數(shù))*適用稅率 - 速算扣除數(shù) 其中,扣除數(shù)為3500,適用稅率以及速算扣除數(shù)如下表所示:

package demo;
import java.util.Scanner;
/*
* 北京地區(qū)的個(gè)人所得稅計(jì)算公式:
應(yīng)納稅額 = (工資薪金所得 - 扣除數(shù))*適用稅率 - 速算扣除數(shù)
其中,扣除數(shù)為3500
*/
public class demo {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("請(qǐng)輸入你的稅前工資:");
int salaryBeforeTax = scanner.nextInt();
scanner.close();
int taxSalary = salaryBeforeTax - 3500;
double tax;
/* 方法一*/
tax = taxSalary<0?0.0:
taxSalary<=1500?taxSalary*0.03:
taxSalary<=4500?taxSalary*0.1-105:
taxSalary<=9000?taxSalary*0.2-555:
taxSalary<=35000?taxSalary*0.25-1005:
taxSalary<=55000?taxSalary*0.3-2755:
taxSalary<=80000?taxSalary*0.35-5505:
taxSalary*0.45-13505;
System.out.println("個(gè)人應(yīng)繳納稅款為:"+tax);
/*方法二*/
if( taxSalary < 0 ){
tax = 0;
}else if( taxSalary <= 1500){
tax = taxSalary*0.03;
}else if( taxSalary <= 4500){
tax = taxSalary*0.1-105;
}else if( taxSalary <= 9000){
tax = taxSalary*0.2-555;
}else if( taxSalary <= 35000){
tax = taxSalary*0.25-1005;
}else if( taxSalary <= 55000){
tax = taxSalary*0.3-2755;
}else if( taxSalary <= 80000){
tax = taxSalary*0.35-5505;
}else{
tax = taxSalary*0.45-13505;
}
System.out.println("個(gè)人應(yīng)繳納稅款為:"+tax);
}
}
9、輸入年份和月份,輸出天數(shù)。
package demo;
import java.util.Scanner;
/*
提示:
1.需要判斷是否是閏年,2月份的天數(shù)跟是否是閏年有關(guān)系;
2.用switch-case判斷每個(gè)月的天數(shù)
*/
public class demo{
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("請(qǐng)輸入年份:");
int year = scanner.nextInt();
System.out.println("請(qǐng)輸入月份:");
int month = scanner.nextInt();
int dayNum = theDayNum(month); //先根據(jù)月份得出天數(shù),如果是閏年,對(duì)2月份的天數(shù)重新獲取
if(isLeapYear(year)){
if(month == 2){
dayNum ++; //如果是閏年,2月份增加一天
}
System.out.print(year + "是閏年,");
}else{
System.out.print(year + "不是閏年,");
}
System.out.println(year + "年" + month + "月份共有" + dayNum + "天");
}
/*判斷是否是閏年
* 能被4整除但不能被100整除,或者能被400整除,是閏年
*/
public static boolean isLeapYear(int year) {
if((year % 4 ==0 && year % 100 !=0) || year%400 ==0){
return true;
}else{
return false;
}
}
/*判斷天數(shù)*/
public static int theDayNum(int month) {
switch (month) {
case 1:
return 31;
case 2:
return 28;
case 3:
return 31;
case 4:
return 30;
case 5:
return 31;
case 6:
return 30;
case 7:
return 31;
case 8:
return 31;
case 9:
return 30;
case 10:
return 31;
case 11:
return 30;
case 12:
return 31;
default:
System.out.println("對(duì)不起,您輸入的月份有誤!");
return 0;
}
}
}
10、輸出九九乘法表。

package demo;
/* author:wendy
* 問(wèn)題:
* 直接輸出九九乘法表
* */
public class demo {
public static void main(String[] args) {
//i變量用于控制行數(shù)
for(int i = 0; i <= 9; i++) {
//j變量用于控制每行中參與計(jì)算的數(shù)值
for(int j = 1; j <= i; j++) {
System.out.print(j + "*" + i + "=" + i*j + "\t");
}
//每行輸出之后需要換行
System.out.println();
}
}
}<strong>
</strong>
11、隨機(jī)產(chǎn)生一個(gè)從0-100之間的整數(shù),判斷是否是質(zhì)數(shù) 質(zhì)數(shù)又稱素?cái)?shù),是指在一個(gè)大于1的自然數(shù)中,除了1和此整數(shù)自身外,不能被其他自然數(shù)整除的數(shù) 。
package demo;
import java.util.Random;
public class primeNum {
public static void main(String[] args) {
int num;
Random random = new Random();
num = random.nextInt(100);
System.out.println("隨機(jī)產(chǎn)生的數(shù)為:" + num);
System.out.println(isPrime(num));
}
public static boolean isPrime(int num) {
if(num < 2) {
return false;
}
if(num == 2) {
return true;
}
if(num % 2 == 0) {
return false;
}
for(int i = 3; i <= Math.sqrt(num); i += 2) {
if(num % i == 0) {
return false;
}
}
return true;
}
}
12、查找數(shù)組最小值,并將數(shù)組擴(kuò)容成新數(shù)組。
package demo;
import java.util.Arrays;
import java.util.Random;
/*
* author:wendy
* 問(wèn)題:隨機(jī)產(chǎn)生10個(gè)從0-100之間的整數(shù),并查找最小值;
* 將該數(shù)組擴(kuò)容成新數(shù)組,把最小值存在新數(shù)組的第一個(gè)位置。
* 步驟:
* 1.構(gòu)造一個(gè)長(zhǎng)度為10的數(shù)組,利用Random隨機(jī)產(chǎn)生10個(gè)0-100之間的整數(shù);
* 2.尋找最小值,利用for循環(huán)
* 3.擴(kuò)容 利用Arrays.coprOf()構(gòu)造新數(shù)組,將其長(zhǎng)度設(shè)置為11
* 4.遍歷新數(shù)組,從后往前遍歷,以此賦值,然后將2中找到的最小值存在數(shù)組的第一個(gè)
* */
public class copyOf {
public static void main(String[] args) {
int [] arr = new int[10];
//隨機(jī)產(chǎn)生10個(gè) 0-100之間的整數(shù)
Random random = new Random();
for(int i = 0; i < 10; i ++) {
arr[i] = random.nextInt(100);
}
//打印數(shù)組的內(nèi)容
System.out.println("隨機(jī)產(chǎn)生的數(shù)組為:" + Arrays.toString(arr));
//查找最小的值
int min = arr[0];
for(int j = 1; j < 10; j ++) {
if(min > arr[j]) {
min = arr[j];
}
}
System.out.println("該數(shù)組最小的值為:" + min);
//擴(kuò)容,將最小值存在擴(kuò)容之后的第一個(gè)
int [] newArr = Arrays.copyOf(arr, 11);
//從后往前遍歷,將前面的值賦給后面的值,然后將第一個(gè)的值賦為最小值min
for(int k = newArr.length-1; k >=1; k --) {
newArr[k] = newArr[k-1];
}
//將第一個(gè)的值賦為最小值min
newArr[0] = min;
//打印數(shù)組的內(nèi)容
System.out.println("擴(kuò)容之后的數(shù)組為:"+ Arrays.toString(newArr));
}
}
這篇文章主要內(nèi)容對(duì)初次接觸Java算法和思維的學(xué)員有很大的幫助,小編會(huì)給大家提供相關(guān)幫助,請(qǐng)多多關(guān)注腳本之家。
- Java解密微信小程序手機(jī)號(hào)的方法
- Java中基于Shiro,JWT實(shí)現(xiàn)微信小程序登錄完整例子及實(shí)現(xiàn)過(guò)程
- java實(shí)現(xiàn)俄羅斯方塊小程序
- Java實(shí)現(xiàn)表白小程序
- java實(shí)現(xiàn)驗(yàn)證碼小程序
- Java實(shí)現(xiàn)簡(jiǎn)單日歷小程序 Java圖形界面小日歷開(kāi)發(fā)
- 微信小程序調(diào)用微信登陸獲取openid及java做為服務(wù)端示例
- java實(shí)現(xiàn)微信小程序登錄態(tài)維護(hù)的示例代碼
- 拳皇(Java簡(jiǎn)單的小程序)代碼實(shí)例
相關(guān)文章
idea熱部署插件jrebel正式版及破解版安裝詳細(xì)圖文教程
這篇文章主要介紹了idea熱部署插件jrebel正式版及破解版安裝詳細(xì)教程,本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-12-12
Kafka日志清理實(shí)現(xiàn)詳細(xì)過(guò)程講解
這篇文章主要為大家介紹了Kafka日志清理實(shí)現(xiàn)詳細(xì)過(guò)程講解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-05-05
Java實(shí)現(xiàn)多項(xiàng)式乘法代碼實(shí)例
今天小編就為大家分享一篇關(guān)于Java實(shí)現(xiàn)多項(xiàng)式乘法代碼實(shí)例,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2018-10-10
Java實(shí)現(xiàn)的對(duì)稱加密算法AES定義與用法詳解
這篇文章主要介紹了Java實(shí)現(xiàn)的對(duì)稱加密算法AES,結(jié)合實(shí)例形式分析了對(duì)稱加密算法AES的定義、特點(diǎn)、用法及使用場(chǎng)景,需要的朋友可以參考下2018-04-04
java實(shí)現(xiàn)即時(shí)通信的完整步驟分享
這篇文章主要給大家介紹了關(guān)于java實(shí)現(xiàn)即時(shí)通信的完整步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-09-09
解決Idea查看源代碼警告Library source does not mat
在使用IDEA開(kāi)發(fā)時(shí),遇到第三方j(luò)ar包中的源代碼和字節(jié)碼不一致的問(wèn)題,會(huì)導(dǎo)致無(wú)法正確打斷點(diǎn)進(jìn)行調(diào)試,這通常是因?yàn)閖ar包更新后源代碼沒(méi)有同步更新造成的,解決方法是刪除舊的jar包,通過(guò)Maven重新下載或手動(dòng)下載最新的源代碼包,確保IDE中的源碼與字節(jié)碼版本一致2024-10-10
SpringMVC實(shí)現(xiàn)賬號(hào)只能在一處登陸
這篇文章主要為大家詳細(xì)介紹了SpringMVC如何實(shí)現(xiàn)賬號(hào)只能在一處登陸,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-03-03
springboot調(diào)用HTML文件注意事項(xiàng)及說(shuō)明
這篇文章主要介紹了springboot調(diào)用HTML文件注意事項(xiàng)及說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-11-11

