|
■No53380 (中学生 さん) に返信
> ループ文で"20100911"というのをCharsを使って端まで一つずつメッセージボックスにとっていくにはどうしたらいいでしょうか?
やりたいことの目的が分からないので、あえて変形回答で。
(一応、条件を満たしている物も混ぜていますが)
'案1: For Each〜Next ループを使うが、Chars は使わないパターン。
Dim YMD As String = "20100911"
For Each c As Char In YMD
MessageBox.Show(c)
Next
'案2: For〜Next ループと Mid を用いたパターン。
Dim YMD As String = "20100911"
For p As Integer = 1 To Len(YMD)
MessageBox.Show(Mid(YMD, p, 1))
Next
'案3: While〜End While ループを用いたパターン。
Dim YMD As String = "20100911"
Dim X As CharEnumerator = YMD.GetEnumerator()
While X.MoveNext()
MessageBox.Show(X.Current)
End While
'案4: Do While〜Loop ループを用いたパターン。
Dim YMD As String = "20100911"
Dim P As Integer = 0
Do While P < YMD.Length
MessageBox.Show(YMD.Chars(P))
P += 1
Loop
'案5: Do Until〜Loop ループを用いたパターン。
Dim YMD As String = "20100911"
Dim S As String = Strings.Left(YMD, 1)
Dim P As Integer = 1
Do Until S = ""
MessageBox.Show(S)
S = Mid(YMD, P, 1)
P += 1
Loop
'案6: ループ文を使わずに拡張メソッドで処理(要VB2008以上)。
Dim YMD As String = "20100911"
YMD.Select(Function(c) MessageBox.Show(c)).Count()
'案7: ループ無し、拡張メソッドやラムダ式も無し(要VB2008以上)。
Dim YMD As String = "20100911"
Array.ConvertAll(YMD.ToCharArray(), AddressOf MessageBox.Show)
|