C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[2]: Loop文について


(過去ログ 90 を表示中)

[トピック内 3 記事 (1 - 3 表示)]  << 0 >>

■53380 / inTopicNo.1)  Loop文について
  
□投稿者/ 中学生 (1回)-(2010/09/11(Sat) 19:40:10)

分類:[.NET 全般] 

ループ文で"20100911"というのをCharsを使って端まで一つずつメッセージボックスにとっていくにはどうしたらいいでしょうか?

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim YMD As String = "20100911"

MessageBox.Show(YMD.Chars(5))


引用返信 編集キー/
■53383 / inTopicNo.2)  Re[1]: Loop文について
□投稿者/ 魔界の仮面弁士 (1812回)-(2010/09/11(Sat) 20:41:50)
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)

引用返信 編集キー/
■53385 / inTopicNo.3)  Re[2]: Loop文について
□投稿者/ 中学生 (3回)-(2010/09/11(Sat) 21:33:11)
No53383 (魔界の仮面弁士 さん) に返信
> ■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)

ありがとうございます、早速全て試してみます。
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -