SQL Server 開發指南
阿新 • • 發佈:2021-08-05
next()既能以回車鍵結束輸入,也能以空格鍵結束輸入;也就是說next()無法接收空格;nextLine()只能以回車鍵結束,也就是可以接收空格。next()必須接收到有效字元才能結束輸入,也就是說先輸入空格再輸入有效字元再結束的話,是可以接收到有效字元的。next()與nextLine()同時使用時,如果next()是以回車鍵結束的,那麼如果下一條語句是nextLine()的話,會認為已經接收到回車鍵結束了從而接收不到有效字元。所以nextLine()千萬不能跟在next()後面使用。反過來就可以。
執行結構
迴圈結構:重複執行某一迴圈體,直到不滿足給定條件為止。 分支結構:根據給定的條件判斷執行哪個分支。 順序結構:根據語句出現的順序執行語句。 Tips:任何演算法都可以以迴圈結構,分支結構,順序結構這三種基本結構組合而成。
switch語句
switch語句case子句中的取值必須是常量。
break與continue的區別
break語句用於終止本輪所有次迴圈,即不執行本次迴圈中break後面的語句,直接跳出迴圈。continue用於終止本輪本次迴圈,即本次迴圈中continue後面的程式碼不執行,進行下一次迴圈的入口判斷。如果要跳出多層迴圈,給要跳出的迴圈命名,之後在break語句後面跟上該命名就可以跳出該迴圈。
/**
* main:(程式執行的入口).
* @author 葉子健
* @param args 命令列引數
* @since JDK 1.8
*/
public static void main(String[] args) {
first: for (int i = 0; i < 10; i++) {
System.out.print("i="+i+"\t");
for (int j = 0; j < 5; j++) {
System.out.println("j="+j);
break first;
}
}
}
判斷使用者輸入型別
用Scanner中的方法hasNextXXX()判斷。
作業
public static void main(String[] args){
//某市計程車,起步價(2公里以內)為8元,超過2公里的按照每公里4.5元計算。要求根據路程計算費用。
try {
System.out.println(calculateTaxiFare(-3));
} catch (Exception e) {
e.printStackTrace();
}
}
public static double calculateTaxiFare(int n) throws Exception {
double taxiFare = 0;
if (n <= 0)
throw new Exception("請傳遞大於0的引數");
else if (n > 0 && n <= 2)
taxiFare = 8;
else
taxiFare = 8 + 4.5*(n-2);
return taxiFare;
}
public static void main(String[] args){
//輸入年份,判斷輸入的年份是否是閏年。(閏年的條件是能被4整除,但不能被100整除;或能被400整除。)
try {
Scanner input = new Scanner(System.in);
System.out.print("請輸入年份:");
int year = input.nextInt();
isLeapYear(year);
} catch (Exception e) {
e.printStackTrace();
}
}
public static void isLeapYear(int year) throws Exception {
if(year < 0)
throw new Exception("請輸入大於0的年份。");
else if(year%4 == 0 && year%100 !=0 || year%400 ==0)
System.out.println(year+"年是閏年。");
else
System.out.println(year+"年不是閏年。");
}
public static void main(String[] args){
//要求輸入月份,判斷該月所處的季節並輸出季節(假設:12、1、2月為冬季,依次類推)。
try {
Scanner input = new Scanner(System.in);
System.out.print("請輸入月份:");
int year = input.nextInt();
getSeasonByMonth(year);
} catch (Exception e) {
e.printStackTrace();
}
}
public static void getSeasonByMonth(int month) throws Exception {
if(month<1 || month>12)
throw new Exception("請輸入1到12的月份。");
//將輸入的月份轉換成模12域中的數,這樣0,1,2就是冬季;3,4,5就是春季以此類推。
int season = month%12;
if(season<3)
System.out.println(month+"月是冬季。");
else if(season>=3 && season<6)
System.out.println(month+"月是春季。");
else if(season>=6 && season<9)
System.out.println(month+"月是夏季。");
else
System.out.println(month+"月是秋季。");
}
public static void main(String[] args){
/*根據《國家電網銷售電價表》,居民生活用電按3個梯度收費:月用電量150千瓦時及以下部分,每千瓦時0.43元,151—400千瓦時部分為0.45元,
401千瓦時以上部分為0.52元,請編寫程式,當輸入使用者的用電量時,計算出所需付的費用。*/
try {
Scanner input = new Scanner(System.in);
System.out.print("請輸入用電量:");
int electricity = input.nextInt();
calculatorFeesByElectricity(electricity);
} catch (Exception e) {
e.printStackTrace();
}
}
public static void calculatorFeesByElectricity(int electricity) throws Exception {
if(electricity<0)
throw new Exception("請輸入大於0的用電量。");
double fees;
if(electricity<=150) {
fees = 0.43*electricity;
System.out.println("用電量為"+electricity+"度,處於第一梯度。需要付的電費是"+fees+"元。");
}
else if(electricity>150 && electricity<=400) {
fees = 0.43*150 + 0.45*(electricity-150);
System.out.println("用電量為"+electricity+"度,處於第二梯度。需要付的電費是"+fees+"元。");
}
else if(electricity>400) {
fees = 0.43*150 + 0.45*250 + 0.52*(electricity-400);
System.out.println("用電量為"+electricity+"度,處於第三梯度。需要付的電費是"+fees+"元。");
}
}
public static void main(String[] args){
/*商場根據會員積分打折:
* 2000分以內打9折,
* 4000分以內打8折,
* 8000分以內打7.5折,
* 8000分以上打7折,
* 使用if-else-if結構,實現手動輸入購物金額和積分,計算出應繳金額。
*/
try {
Scanner input = new Scanner(System.in);
System.out.print("請輸入購物金額:");
double money = input.nextInt();
System.out.print("請輸入積分:");
int integral = input.nextInt();
calculatorMoneyByIntegral(money, integral);
} catch (Exception e) {
e.printStackTrace();
}
}
public static void calculatorMoneyByIntegral(double money, int integral) throws Exception {
if(money<0 || integral<0)
throw new Exception("請輸入大於0的購物金額與積分。");
double finalMoney;
if(integral<=2000) {
finalMoney = 0.9*money;
System.out.println("您的積分為"+integral+",為您打九折。最終需要付的金額是"+finalMoney+"元。");
}
else if(integral>2000 && integral<=4000) {
finalMoney = 0.8*money;
System.out.println("您的積分為"+integral+",為您打八折。最終需要付的金額是"+finalMoney+"元。");
}
else if(integral>4000 && integral<=8000) {
finalMoney = 0.75*money;
System.out.println("您的積分為"+integral+",為您打七五折。最終需要付的金額是"+finalMoney+"元。");
}
else if(integral>8000){
finalMoney = 0.7*money;
System.out.println("您的積分為"+integral+",為您打七折。最終需要付的金額是"+finalMoney+"元。");
}
}
public static void main(String[] args){
/*一年中有12個月,而每個月的天數是不一樣的。其中大月31天,
* 分別為1,3,5,7,8,10,12月,小月30天,分別為4,6,9,11月。
* 還有二月比較特殊,平年的二月只有28天,而閏年的二月有29天,
* 由使用者在控制檯輸入年份和月份,程式計算該年該月的天數。
*/
try {
Scanner input = new Scanner(System.in);
System.out.print("請輸入年份:");
int year = input.nextInt();
System.out.print("請輸入月份:");
int month = input.nextInt();
getDaysByYearAndMonth(year, month);
} catch (Exception e) {
e.printStackTrace();
}
}
public static void getDaysByYearAndMonth(int year, int month) throws Exception {
if(year<0 || month<0)
throw new Exception("請輸入大於0的年份與月份。");
HashMap<Integer, Integer> monthToDays = new HashMap<>() ;
{
monthToDays.put(1, 31);
monthToDays.put(3, 31);
monthToDays.put(4, 30);
monthToDays.put(5, 31);
monthToDays.put(6, 30);
monthToDays.put(7, 31);
monthToDays.put(8, 31);
monthToDays.put(9, 30);
monthToDays.put(10, 31);
monthToDays.put(11, 30);
monthToDays.put(12, 31);
}
if(isLeapYear(year)) {
monthToDays.put(2,29);
System.out.print(year+"年是閏年,");
}
else {
monthToDays.put(2,28);
System.out.print(year+"年不是閏年,");
}
System.out.println(year+"年的"+month+"月共有"+monthToDays.get(month)+"天。");
}
public static boolean isLeapYear(int year) throws Exception {
if(year < 0)
throw new Exception("請輸入大於0的年份。");
else if(year%4 == 0 && year%100 !=0 || year%400 ==0)
return