2014-07-18 4 views
1

기본적으로 사용자 입력이 정수, 부동 또는 문자열인지 확인하려면 switchcase 문을 작성하고 싶습니다. hasCheckInt(), hasCheckDouble() 등의 메소드를 사용하여 해당 데이터 유형을 확인하고 싶습니다.스위치 케이스를 사용하여 userinput이 문자열인지 또는 int인지 float인지 확인하십시오.

무엇을 넣어야할지 모르므로 일부 코드는 예가 빠져 있습니다. Java 놈을 용서하십시오.

import java.util.Scanner; 
public class helloWorld { 
public static void main(String[] args) { 
     Scanner userInput = new Scanner(System.in); 
     switch()) { 
     case 1: 

     if(userInput.hasNextInt()) { 
     System.out.println("Int"); 
     } 
     break; 



    case 2: 
    if(userInput.hasNextLine()) { 
    System.out.println("String"); 
    } 
    break; 
    } 
    } 
    } 

답변

1

기본적으로 나는 검사가 사용자의 입력이 정수의 경우 경우 switchcase 문을 작성 플로트 또는 문자열 싶습니다. hasCheckInt(), hasCheckDouble() 등의 메소드를 사용하여 해당 데이터 유형을 확인하고 싶습니다.

당신이하는 switchcase의 상수,하지 (함수 호출 포함) 식의 결과가 있어야합니다 수 없습니다.

대신 if/else if/else

if (hasCheckInt(argumentHere)) { 
    // `hasCheckInt` returned `true` 
    // ... 
} 
else if (hasCheckDouble(argumentHere)) { 
    // `hasCheckDouble` returned `true` 
    // ... 
} 
else { 
    // None of the above matched 
} 
+0

이 내가 할 if 문 사용하여 작업을 수행하는 방법을해야합니다. 그것은 내가 스위치를 사용하여 그것을하고 싶다는 것입니다. 가능하지 않습니까? – user3852039

+0

정확합니다. 불가능합니다. 자바에서'switch '의'case'는 상수 여야 만합니다 :'case 42 :'**는 수식이 될 수 없습니다 : case hasCheckInt (args) :'. (이것은 ** 대부분의 ** ** 모든 언어가 아니지만 ** 스위치가있는 언어에 해당합니다 .JavaScript는 내가 알고있는 유일한 예외이지만, 다른 것들도있을 것입니다.) –

관련 문제