a.為何要學 boolean
因為可記錄 "比較"結果
b.為何要學 if ()
因為光靠 boolean 程式太冗長
c.為何要學 if-else
因為光靠 if 例外不易處理
d. 為何要學 if-else if-else
因為光靠 if-else 階層太多,無法一目了然
e.為何要學 switch-case
因為要1.最佳化效能,但無法取代 if 語法
2.結構清楚
2.歸納第五章 Sample重點
a. else, else if 不能單獨成立,需搭配 if
b. if, else 若內含一道敘述,則可省略 { , }
c.char 其實可以當作整數來用,例如:'A'的整數值是65。(可查ASCII)
d. ?:是一種三個運算元的條件指令,可以利用 if-else 來做
範例:
if (a > b) {
max = a;
}
else {
max = b;
}
上述可用下列代替
max = (a > b) ? a : b;
e. 從 sample 7 的 if (res=='y' || res=='Y'),可知:
1.邏輯 || 寫成邏輯 && 程式語法沒錯,邏輯錯
2. 多練習小程式 & 事前分析,以累積經驗,可以避免上述的邏輯錯誤。
3.第六章迴圈之一
現代語法三大迴圈 (Loop) 指令
1. for 迴圈 (counter-controlled 計數器)
語法:for ( A ; B ; C; )
說明:A、B、C三者為 optional (可有可無)
A:初始化計數器 (counter)
B:條件控制 ( for 的結束條件,符合條件就繼續迴圈;不符合則跳出迴圈,執行下一行程式。)
C:步進控制 (step wise 用來控制 counter)
2.while 迴圈
參考
20120611 JAVA2 語言基礎四
3. do-while 迴圈
參考
20120611 JAVA2 語言基礎四
4.第六章練習一
題目:試利用 for 迴圈,配合鍵盤輸入。當輸入字串為 quit 時,結束程式;
若未結束,就將所輸入的訊息提示出來。
Hint:須利用String 所提供的 equals() 方法,才能達成。
程式碼
結果
5.第六章練習二
題目:將點餐系統加上 for 迴圈。再多加一個結束的功能,當輸入999時就結束迴圈。
程式碼一
import java.io.*;
import java.util.Scanner;
//點餐系統 (用 if-else ) 加上 for迴圈,輸入999為結束。
class Sample61
{
public static void main(String[] args) throws IOException
{
int i=0;
for (; i!=999 ;) //持續在迴圈內的條件要設為 i 不等於999
{
String msg1 = "請輸入數字 1~5,代表您要幾號餐。";
System.out.println(msg1);
Scanner scan = new Scanner(System.in);
i = scan.nextInt();
if (i==1)
System.out.println("您選的餐是:"+ i);
else if (i==2)
System.out.println("您選的餐是:"+ i);
else if (i==3)
System.out.println("您選的餐是:"+ i);
else if (i==4)
System.out.println("您選的餐是:"+ i);
else if (i==5)
System.out.println("您選的餐是:"+ i);
else if (i==999) //因為程式一開始執行後就一直在迴圈內,所以需要在這裡設999
; //輸入999後,if 在這條件下不需做任何事,所以用;讓程式回 for判斷後跳出迴圈
else
System.out.println("輸入錯誤");
}
System.out.println("Bye-Bye");
}
}
結果
程式碼二
//點餐系統 (用 switch-case ) 加上 for迴圈,輸入999為結束。
import java.io.*;
import java.util.Scanner;
//點餐系統 (用switch-case)加上 for迴圈,輸入999為結束。
class Sample62
{
public static void main(String[] args) throws IOException
{
int i=0;
for (; i!=999 ;){
String msg1 = "請輸入數字 1~5,代表您要幾號餐。";
System.out.println(msg1);
Scanner scan = new Scanner(System.in);
i = scan.nextInt();
switch (i){
case 1:
System.out.println("您選的餐是:"+ i);
break;
case 2:
System.out.println("您選的餐是:"+ i);
break;
case 3:
System.out.println("您選的餐是:"+ i);
break;
case 4:
System.out.println("您選的餐是:"+ i);
break;
case 5:
System.out.println("您選的餐是:"+ i);
break;
case 999:
System.out.println("Bye-Bye");
break;
default:
System.out.println("輸入錯誤");
}
}
}
}
結果同上
6.第六章課本練習題(P.124~125)
第一題
程式碼
import java.io.*;
//課本第六章練習題1。
class E61
{
public static void main(String[] args) throws IOException
{
System.out.println("輸出1~10的偶數");
for (int x=2; x<=10; x=x+2){
System.out.println(x);
}
}
}
結果
第二題
程式碼一 (do...while)
import java.io.*;
import java.util.Scanner;
//課本第六章練習題2。
class E62
{
public static void main(String[] args) throws IOException
{
String msg1 = "請輸入考試成績,輸入0就結束。";
System.out.println(msg1);
int num=0;
int sum=0;
do{
Scanner scan = new Scanner(System.in);
num = scan.nextInt();
sum = sum + num;
} while (num!=0);
System.out.println("輸入總分為"+sum);
}
}
結果
程式碼二 (for 迴圈)
import java.io.*;
import java.util.Scanner;
//課本第六章練習題2。
class E62
{
public static void main(String[] args) throws IOException
{
String msg1 = "請輸入考試成績,輸入0就結束。";
System.out.println(msg1);
int num=1;
int sum=0;
for (; num!=0;)
{
Scanner scan = new Scanner(System.in);
num = scan.nextInt();
sum = sum + num;
}
System.out.println("輸入總分為"+sum);
}
}
程式碼三 (for 迴圈 - 老師解法)
import java.util.Scanner;
public class TestP124 {
public static void main(String[] args) {
int sum = 0;
System.out.println("請輸入整數0~100代表成績:");
for( ; ; ) {
Scanner s = new Scanner(System.in);
int score = s.nextInt();
if(score==0) {
System.out.println("總分 "+sum+" 分");
break;
}
sum = sum + score;
}
}
}
第三題
程式碼
import java.io.*;
//課本第六章練習題3。
public class E63
{
public static void main(String[] args) throws IOException
{
System.out.println("九九乘法表");
for (int i=1; i<10; i=i+1){
for (int j=1; j<10; j=j+1){
System.out.print(i+"X"+j+"="+i*j+"\t");
}
System.out.println("\n");
}
}
}
結果
第四題
程式碼
import java.io.*;
public class E64 {
public static void main(String[] args) throws IOException
{
for (int i=1; i<6; i=i+1){
for (int j=0; j<i; j=j+1){
System.out.print("*");
}
System.out.println("\n");
}
}
}
結果
第五題
程式碼
import java.io.IOException;
import java.util.Scanner;
public class E65
{
public static void main(String[] args) throws IOException
{
System.out.println("請輸入大於2的整數");
Scanner scan = new Scanner(System.in);
int num = scan.nextInt();
for (int i=2; i<=num; i=i+1){
if (i==num){
System.out.println(num+"是質數");
}
else if (num % i==0){
System.out.println(num+"不是質數");
break;
}
}
}
}
結果一
結果二
No comments:
Post a Comment