코딩왕이되쟈
140
2018-05-17 00:42:48
6
448

자바 if조건문 scanner활용...


일어났다 1.휴대폰을킨다 2.밥을먹는다 3.샤워를한다 4.집을 나간다

1 선택

1.친구에게 카톡을한다 2.유튜브를본다 3.뉴스를본다  4.웹툰을본다 

3선택

1.시사를본다 2.게임을본다 3.스포츠를본다
4.사회를본다

이런식으로 쭉 이어져나가게 자바로 if scanner 만 활용해서 혹시 코딩가능한가요 계속 해봤는데 막혀서 ㅠㅠ
코딩 왕초보입니다

0
0
  • 답변 6

  • ShipJH
    663
    2018-05-17 09:32:18

    sysout("1.휴대폰을킨다 2.밥을먹는다 3.샤워를한다 4.집을 나간다");


    int 변수1 = 스캐너로 1받은값. 캐스팅은 알아서.. 


    if( 변수1 == 1) {

      sysout("1.친구에게 카톡을한다 2.유튜브를본다 3.뉴스를본다  4.웹툰을본다 ");

      int 변수2 = 스캐너로 1받은값. 캐스팅은 알아서.. 

       if( 변수2 == 1) {  
       ...

       }else if( 변수2 == 2) {  
       ....

       }else if( 변수2 == 3) {  

         sysout("1.시사를본다 2.게임을본다 3.스포츠를본다 4.사회를본다 ");

       }

       .....


    }else if(int ==2){


    }

    ........



    요런식으루 하면 될것같습니다. 



    0
  • 코딩왕이되쟈
    140
    2018-05-17 12:23:58

    죄송하지만 캐스팅이 어떻게 이루어지는지....


    공부해봤는데 잘모르겠어서 힌트라도 조금 주실수있나요..

    0
  • ShipJH
    663
    2018-05-17 13:04:12

    형변환이 필요하면 형변환하셔서 하시면되요.. 

    스캐너가 받아들이는 값이 타입이 어떻게 되나요? 

    0
  • 코딩왕이되쟈
    140
    2018-05-17 13:31:06

    제가 완전 초보라 이해를 잘 못했나봐요 저는 어떤식으로 했냐면


    여기서 저는 2번을 선택하면 밥을먹는데

    밥을먹으면 또 뭐 햄버거를먹을거냐 씨리얼을먹을거냐 피자를먹을거냐 이렇게나오게되고


    1번 휴대폰을 킨다를 선택하면


    유튜브를 볼거냐 버스시간을볼거냐 카톡을할거냐 이런식으로 나오게하고 싶거든용...

    근데 잘 이해가 다안가네요 ㅠㅠ.... 이것도 어거지로 코드짜본거라 잘모르겠어요

    0
  • jae
    89
    2018-05-17 16:00:32

    개인적으로 nextLine 쓰는걸 추천드려요.. 넥스트인트 쓰면 버퍼가 남아성..


    main{

    Scanner scan = new Scanner(Syetem.in);

    System.out.println("1휴대폰을 킨다.  2.밥을 .... ");

    String sum = "";

    while(true){

    sum += scan.nextLine();

    sum = customMethod(sum);

    if(sum == "9"){

    System.out.println("종료");

    break;

    }

    }

    }


    public String customMethod(String s){

      switch(s){

        case "1": Stsrem.out.println("1 휴대폰을 켰다."); // 처음 1을 선택했을경우

                        Stsrem.out.println("1. 유투브를 본다. 2.버스 시간표를 본다. 3.... ); // 다음 질문 표시 

                        break; // 스위치 종료, 리턴 main으로 돌아가 입력받음

        case "11" : Ststem.out.println(" 유투브에 접속했다. ");  // 처음 1 선택후 두번쨰 문항 1 선택했을경우

                           System.out.println(" 1. aaa를 본다.  2. bbb를 본다. "); 

                          break;

    .

    .

       case "2" : Ststem.out.println("밥을 먹는다");  // 처음문항 2 선택했을경우...

                        Ststem.out.println("1. 라면을 먹는다.  2. 국을 먹는다 ... )

                        break;

      default: res = "9";

     }

    return res;

    }


    위처럼 따로 정의 안 하고 if문 쓰셔서 

     if(a==1){

    sysout("1. 휴대폰을 킨다");

    sysout(" 1. 유투부를 본다.  2. 버스시... ");

    a=scan.~...

    if (a==1){...}


    이런식으로 해도 되긴 하는데, 그럴경우 코드가 엄청 길어질것 같습니다.

      자바 오랜만이고 여기에 쌩 코딩한거라 잘 될지 모르겠는데 

     도움 되었으면 좋겠네요.

     아 .. 쓰다가 느낀건데 if에서 문자열 비교할때 == 말고 .equlas 쓰셔야 될거에여..

    0
  • ShipJH
    663
    2018-05-17 17:36:40

    if안에 if 넣으시면되요 계속 

    0
  • 로그인을 하시면 답변을 등록할 수 있습니다.