java 方法呼叫疑惑?

有一題題目如下:

皮卡丘有以下四種方法

1.電擊

2.裝死

3.破壞光線

4.挑釁敵人

請根據以上自行撰寫一程式,可讓使用者選執行的動作,並之後會印出其結果即可,注意!請使用方法呼叫。

我寫出的部分如下

import java.util.Scanner;

public class java2

{public static void main(String[] args)

{

Scanner sc = new Scanner (System.in);

int x=1;

while(x==1)

{

System.out.println("請選擇你要皮在養執行的動作");

System.out.print("1.電擊 2.裝死 3.破壞死光 4.挑釁敵人=");

java22 b = new java22();

int a =sc.nextInt();

x=1;

}}}

public class java22 {

int b = 0;

int b = (int a);

switch(b){

case 1:

System.out.println("電擊");

break;

case 2:

System.out.println("裝死");

break;

case 3:

System.out.println("破壞死光");

break;

case 4:

System.out.println("挑釁敵人");

break;

default

System.out.println("ERROR KEYIN");

break;

}}}

可是跑不出來?

哪裡出錯了?

已更新項目:

兩個都很好,投票決定好了

2 個解答

評分
  • 9 年前
    最佳解答

    修改你的程式~~將static 的getNum() 作成遞迴呼叫方法

    程式中不需要用到while 迴圈

    import java.util.Scanner;

    public class TestJava2 {

    static int a ; //這裡的a 設成static 下方main() 及getNum()才可使用到

    public static void main(String[] args) {

    Scanner sc = new Scanner(System.in);

    System.out.println("請選擇你要皮在養執行的動作");

    System.out.println("1.電擊 2.裝死 3.破壞死光 4.挑釁敵人");

    a=sc.nextInt();

    getNum(); //呼叫遞迴方法

    }

    public static void getNum(){

    switch(a){

    case 1:

    System.out.println("電擊");

    break;

    case 2:

    System.out.println("裝死");

    break;

    case 3:

    System.out.println("破壞死光");

    break;

    case 4:

    System.out.println("挑釁敵人");

    break;

    default: //這裡少ㄌ冒號 : 幫你補上

    System.out.println("ERROR KEYIN");

    break;

    }

    }

    } 測試結果成功執行如下

    圖片參考:http://imgcld.yimg.com/8/n/AE02886810/o/1511120708...

    參考資料: 加菲貓
  • Cola
    Lv 5
    9 年前

    import java.util.Scanner;

    public class java2

    {public static void main(String[] args)

    {

    Scanner sc = new Scanner (System.in);

    int a;

    java22 b = new java22();//先建立java22,不用每次都new一次

    while(true)

    {

    System.out.println("請選擇你要皮在養執行的動作");

    System.out.print("1.電擊 2.裝死 3.破壞死光 4.挑釁敵人=");

    a =sc.nextInt();//這行放在這,需先取得值才能做判斷

    if (a<1) break;//a若小於1,便退出結束

    b.print(a); //判斷並列印

    //x=1; //

    }}}

    class java22 { //public去掉,同檔案只能有一個public class

    public void print(int a){ //建立一個方法,代入輸入值做判斷

    switch(a){

    case 1:

    System.out.println("電擊");

    break;

    case 2:

    System.out.println("裝死");

    break;

    case 3:

    System.out.println("破壞死光");

    break;

    case 4:

    System.out.println("挑釁敵人");

    break;

    default:

    System.out.println("ERROR KEYIN");

    break;

    }

    }}

還有問題?馬上發問,尋求解答。