2

ユーザーが整数を入力する必要がありますが、下に示すコードでは倍精度も許可されています。整数のみを許可するように変更するにはどうすればよいですか?

do{

    $opgegevenGetal = read-host "Enter an integer"

    if(![bool]($opgegevenGetal -as [int])){
        write-host "Only integers please"
    }

}

until ([bool]($opgegevenGetal -as [int]))
4

2 に答える 2

5

クリスチャンの答えのもう少しコンパクトなバージョン:

$value = 0
$read = Read-Host 'Enter an integer'
while( ![int]::TryParse( $read, [ref]$value ) ) {
  $read = Read-Host 'Only integers please'
}
于 2012-12-07T14:14:51.887 に答える
5

試す:

do{
    $opgegevenGetal = read-host "Enter an integer"
    $a = ""
    if(  ![int32]::TryParse( $opgegevenGetal , [ref]$a ))
      {
        write-host "Only integers please"
      }
  } until ($a -gt 0)

入力として受け入れるためのコード0:

do{
    $opgegevenGetal = read-host "Enter an integer"
    $a = ""
    if(  ![int32]::TryParse( $opgegevenGetal , [ref]$a ))
      {
        write-host "Only integers please"
      }
  } until ($a -gt 0 -or $opgegevenGetal -eq '0')

また:

do{
    $opgegevenGetal = read-host "Enter an integer"
    $a = ""
    $b = [int32]::TryParse( $opgegevenGetal , [ref]$a )
    if(  !$b)
      {
        write-host "Only integers please"
      }
  } until ($b)
于 2012-12-04T10:47:28.450 に答える