1.Review
A.Coding Style
a. jagged alignmentPurpose: Clear structure, high readability and easy debugging.
b. Naming rules:
Variables: Hump-style naming, starting with lowercase, when the next word is encountered, the beginning of the word is capitalized.
Constant: All uppercase, in case of the next word, connect with the bottom line.
Category name: Same as the variable rule, but the first word is capitalized first.
A.Coding Style
a.鋸齒狀對齊目的:結構清楚,可讀性高,易除錯。
b.命名規則:
變數:駝峰式命名,小寫開頭,遇到下一個單字時,字首變大寫。
常數:全大寫,遇下一單字,用底線連接。
類別名稱:同變數規則,但第一單字字首大寫。
B. Variable reason
a. Definition of variables: borrowed from mathematics (other functions are similar)How the variables work in the computer: remember with memory
b. The type and size of the variable (container): determined by the data type
c. Why do you need integers, floating point numbers, characters/strings, Brin?
d. Brin variables: In short, the results after "ratio" can be recorded.
B. 變數緣由
a.變數的定義:借自數學(另有函數也類似)變數在電腦如何實作:以記憶體記住
b.變數(容器)的種類、大小:由資料型態決定
c.為何需要整數、浮點數、字元/字串、布林?
d.布林變數:簡言之,能記錄"比大小"之後的結果。
2.Practice 1:Ordering system(Brin)
點餐系統(布林)同樣輸入 1~5 代表5個餐,試運用 布林 配合比大小之關係運算子,來統計點了哪個餐?
程式碼
import java.io.*;
import java.util.Scanner;
class Sample41
{
public static void main(String[] args) throws IOException
{
String msg1 = "請輸入數字 1~5,代表您要幾號餐。";
System.out.println(msg1);
// 簡潔版
Scanner scan = new Scanner(System.in);
int i = scan.nextInt();
boolean isNo1 =(i==1);
System.out.println("您選的是1餐:"+ isNo1);
boolean isNo2 =(i==2);
System.out.println("您選的是2餐:"+ isNo2);
boolean isNo3 =(i==3);
System.out.println("您選的是3餐:"+ isNo3);
boolean isNo4 =(i==4);
System.out.println("您選的是4餐:"+ isNo4);
boolean isNo5 =(i==5);
System.out.println("您選的是5餐:"+ isNo5);
}
}
結果
3.Practice 2:operator 運算子
試輸入二整數,提示至二個整數的和、差、積、商、餘。(例如 i=3, j=5)程式碼
import java.io.*;
import java.util.Scanner;
class Sample5
{
public static void main(String[] args) throws IOException
{
System.out.println("請輸入一個整數。");
Scanner scan1 = new Scanner(System.in);
int num1 = scan1.nextInt();
System.out.println("請再輸入一個整數。");
Scanner scan2 = new Scanner(System.in);
int num2 = scan2.nextInt();
System.out.println("您輸入二個數字的和是:" + (num1+num2));
System.out.println("您輸入二個數字的差是:" + (num1-num2));
System.out.println("您輸入二個數字的積是:" + (num1*num2));
System.out.println("您輸入二個數字的商是:" + (num1/num2));
System.out.println("您輸入二個數字的餘數是:" + (num1%num2));
}
}
結果
歸納第四章範例一至六重點
1.字串和整數相加,會先將整數變成字串,然後串接起來。
注意:若此整數為二個整數做運算,則應該先以小括號強制。
2.百分比符號(%)為取餘數,用途廣,應用於開關
例一:求奇、偶數 (A%2==0,偶數)
非偶數,即奇數 (A%2 !=0,奇數)
都以0為判斷式,不要用1來做判斷,因為A%2,A可能是負數,-1就判斷不出來。
3. x = x + 1 可簡寫為 ++X 或 X++
注意:若 ++X 與其他運算式並用,須注意隱含的先後次序。
建議:若無必要,就將之做成單獨的一個式子。
4. Sample6 利用
int sum =0;
sum += Integer.parseInt(strX);
的另一加總方式,預備與迴圈搭配使用
注意:+= 是 Java 後來新增, 初學可先跳過。先用 sum = sum =....
歸納第四章範例七至十一重點
1.int 與double 之間資料互換時,系統認為 int 資料範圍小,double 的資料範圍大,
所以 double <-- int ,安全,不警告
但是 int <-- double ,危險,警告
解法:做強制型別轉換,
例如:double d=3.5;
int i = (int) d;
2.承上
double <-- int 系統認為安全,不警告,但是城市可能不安全(小心),
例如:
double d = 5 / 4 ;
我們以為 d 的內容是1.25,沒想到卻是1.0。因為5 & 4 是 int。
解法:
double d = (double)5 / 4 ;
或是 double d = 5.0 / 4 ;
4.第五章練習三:判斷奇偶數
基於上午 Sample4_.java (判斷奇偶數),繼續以下。
-->寫程式,判斷2整數做 + , - , * , / , % 之後,有哪些結果為正整數。
Hint :因為尚未學到流程控制,先利用 boolean 與關連運算子來做。
程式碼
import java.util.Scanner;
class Practice3
{
public static void main(String[] args)
{
System.out.println("請輸入一個整數。");
Scanner scan1 = new Scanner(System.in);
int num1 = scan1.nextInt();
System.out.println("請再輸入一個整數。");
Scanner scan2 = new Scanner(System.in);
int num2 = scan2.nextInt();
System.out.println("您輸入二個數字的和等於" + (num1+num2) + "。");
System.out.println("您輸入二個數字的差等於" + (num1-num2) + "。");
System.out.println("您輸入二個數字的積等於" + (num1*num2) + "。");
System.out.println("您輸入二個數字的商等於" + (num1/num2) + "。");
System.out.println("您輸入二個數字的餘數等於" + (num1%num2) + "。");
boolean isEven1 = (num1+num2) > 0;
System.out.println("二個數字的和是正整數嗎? "+isEven1);
boolean isEven2 = (num1-num2) > 0;
System.out.println("二個數字的差是正整數嗎? "+isEven2);
boolean isEven3 = (num1*num2) > 0;
System.out.println("二個數字的積是正整數嗎? "+isEven3);
boolean isEven4 = (num1/num2) > 0;
System.out.println("二個數字的商是正整數嗎? "+isEven4);
boolean isEven5 = (num1%num2) > 0;
System.out.println("二個數字的餘數是正整數嗎? "+isEven5);
}
}
結果
5.第五章練習四:(if 條件式)
點餐系統:利用if (),若輸入 1~5 以外的數,回應"無此餐"。
方法一:利用邏輯運算子,加以判斷。
方法二:&& (且)、|| (或)、! (非)
程式碼
import java.io.*;
import java.util.Scanner;
class Practice5
{
public static void main(String[] args) throws IOException
{
String msg1 = "請輸入數字 1~5,代表您要幾號餐。";
System.out.println(msg1);
Scanner scan = new Scanner(System.in);
int i = scan.nextInt();
boolean isNo1 =(i==1);
if (isNo1) System.out.println("您選的是1餐:");
boolean isNo2 =(i==2);
if (isNo2) System.out.println("您選的是2餐:");
boolean isNo3 =(i==3);
if (isNo3) System.out.println("您選的是3餐:");
boolean isNo4 =(i==4);
if (isNo4) System.out.println("您選的是4餐:");
boolean isNo5 =(i==5);
if (isNo5) System.out.println("您選的是5餐:");
if(!isNo1 && !isNo2 && !isNo3 && !isNo4 && !isNo5) System.out.println("無此餐");
}
}
結果
6.第五章練習:利用條件式,判斷四則運算
將之前的四則運算練習的結果,利用 if 條件式,列出何者大於0且小於等於10
程式碼
import java.io.*;
import java.util.Scanner;
class sample6
{
public static void main(String[] args) throws IOException
{
System.out.println("請輸入一個整數。");
Scanner scan1 = new Scanner(System.in);
int num1 = scan1.nextInt();
System.out.println("請再輸入一個整數。");
Scanner scan2 = new Scanner(System.in);
int num2 = scan2.nextInt();
int a1 = num1+num2;
int a2 = num1-num2;
int a3 = num1*num2;
int a4 = num1/num2;
int a5 = num1%num2;
System.out.println("您輸入二個數字的和是:" + a1);
System.out.println("您輸入二個數字的差是:" + a2);
System.out.println("您輸入二個數字的積是:" + a3);
System.out.println("您輸入二個數字的商是:" + a4);
System.out.println("您輸入二個數字的餘數是:" + a5);
//那些結果是介於0~10之間
System.out.println("");
System.out.println("以上計算結果,何者介於0~10之間?");
if (a1>0 && a1 <=10) System.out.println("和介於0~10之間");
if (a2>0 && a2 <=10) System.out.println("和差於0~10之間");
if (a3>0 && a3 <=10) System.out.println("和積於0~10之間");
if (a4>0 && a4 <=10) System.out.println("和商於0~10之間");
if (a5>0 && a5 <=10) System.out.println("餘數於0~10之間");
}
}
結果1
結果2
7.第五章練習:If...else & Switch...case
題目:輸入一整數 (0 ~ 100),代表成績
90~100 A
80~90 B
70~80 C
60~70 D
0~60 E
其他 輸入錯誤
程式碼
import java.io.*;
import java.util.Scanner;
class test8
{
//利用 if... else if ...else
public static void main(String[] args) throws IOException
{
System.out.println("利用 if...else");
String msg1 = "請輸入數字 0~100,代表成績";
System.out.println(msg1);
Scanner scan = new Scanner(System.in);
int s1 = scan.nextInt();
if (s1<=100 && s1 >=90)
System.out.println('A');
else if (s1<90 && s1>=80)
System.out.println('B');
else if (s1<80 && s1>=70)
System.out.println('C');
else if (s1<70 && s1>=60)
System.out.println('D');
else if (s1<60 && s1 >=0)
System.out.println('E');
else
System.out.println("輸入錯誤");
main2();
}
//利用 switch...case + if ... else
public static void main2() throws IOException
{
System.out.println("");
System.out.println("利用 switch...case");
String msg1 = "請輸入數字 0~100,代表成績";
System.out.println(msg1);
Scanner scan = new Scanner(System.in);
int s3 = scan.nextInt();
int s2 = s3/10;
if (s3>100 || s3<0)
System.out.println("輸入錯誤");
else
switch (s2)
{
case 10:
System.out.println('A');
break;
case 9:
System.out.println('A');
break;
case 8:
System.out.println('B') ;
break;
case 7:
System.out.println('C') ;
break;
case 6:
System.out.println('D') ;
break;
default:
System.out.println('E') ;
}
}
}
結果
No comments:
Post a Comment