如果今天要讓兩個人互相猜拳的話,怎麼寫呢?
上一篇介紹了random函數,
可以以此為思考的出發點,再配合switch...case條件判斷式試著寫寫看吧!
switch(變數名稱或運算式){
case (符合數字或字元):(記得是冒號不是分號)
陳述句1;
break;(如符合則執行陳述句1後中斷並離開switch)
case (符合數字或字元):
陳述句2;
break;
...
}
思考邏輯:將剪刀、石頭、布各設定成1、2、3再互相比較
public static void main(String[] args) {
int a = (int)(Math.random()*3+1);
int b = (int)(Math.random()*3+1);
switch(a) {
case 1:
System.out.println("小明出剪刀");
break;
case 2:
System.out.println("小明出石頭");
break;
case 3:
System.out.println("小明出布");
break;
}
switch(b) {
case 1:
System.out.println("小華出剪刀");
break;
case 2:
System.out.println("小華出石頭");
break;
case 3:
System.out.println("小華出布");
break;
}
if (a-b==0) {
System.out.println("兩人平手");
}
else if(a-b==1 ||a-b==-2) {
System.out.println("小明勝");
}
else {
System.out.println("小華勝");
}
}
switch跟if蠻像的:
差異在switch只取出1次值,然後跟case進行比對;
if則是每次都要取出值再進行比對,如果狀況越多,那麼運算的速度就越慢。
但是並不是說if就不好,如果遇到組合條件,就該用if了。
以上,同行見笑,
如有任何指教請不吝留言告知,謝謝。
上一篇介紹了random函數,
可以以此為思考的出發點,再配合switch...case條件判斷式試著寫寫看吧!
switch(變數名稱或運算式){
case (符合數字或字元):(記得是冒號不是分號)
陳述句1;
break;(如符合則執行陳述句1後中斷並離開switch)
case (符合數字或字元):
陳述句2;
break;
...
}
思考邏輯:將剪刀、石頭、布各設定成1、2、3再互相比較
public static void main(String[] args) {
int a = (int)(Math.random()*3+1);
int b = (int)(Math.random()*3+1);
switch(a) {
case 1:
System.out.println("小明出剪刀");
break;
case 2:
System.out.println("小明出石頭");
break;
case 3:
System.out.println("小明出布");
break;
}
switch(b) {
case 1:
System.out.println("小華出剪刀");
break;
case 2:
System.out.println("小華出石頭");
break;
case 3:
System.out.println("小華出布");
break;
}
if (a-b==0) {
System.out.println("兩人平手");
}
else if(a-b==1 ||a-b==-2) {
System.out.println("小明勝");
}
else {
System.out.println("小華勝");
}
}
switch跟if蠻像的:
差異在switch只取出1次值,然後跟case進行比對;
if則是每次都要取出值再進行比對,如果狀況越多,那麼運算的速度就越慢。
但是並不是說if就不好,如果遇到組合條件,就該用if了。
以上,同行見笑,
如有任何指教請不吝留言告知,謝謝。
請問要如何改成五戰三勝
回覆刪除您需要先設定2個新int變數c=0及d=0,
刪除當else if時c++,else時d++
另外需要改以迴圈方式執行猜拳,直到c或d=3時打破迴圈回傳勝利結果或印出勝利結果
所以要在哪裡加上去
刪除還是重寫一個Class
能不能直接打程式給我呢
回覆刪除