tagCANDY CGI VBレスキュー(花ちゃん)の Visual Basic 6.0用 掲示板 [ツリー表示へ]   [Home]
一括表示(VB6.0)
タイトルコードを短く簡潔にするには?
記事No12124
投稿日: 2008/04/26(Sat) 21:35
投稿者tea
以下のコードを短く簡潔にするにはどうしたらよいのでしょうか?
他にも同様なコードの箇所が10個ほどあります。
教えてください。
よろしくお願いします。

Private Function Point()
Dim TwoT As Long
Dim TwoS As Long

    With Game.Team(0)
    
        TwoT = .Player(1).TwoPointShotCount + .Player(2).TwoPointShotCount _
            + .Player(3).TwoPointShotCount + .Player(4).TwoPointShotCount _
            + .Player(5).TwoPointShotCount + .Player(6).TwoPointShotCount _
            + .Player(7).TwoPointShotCount + .Player(8).TwoPointShotCount _
            + .Player(9).TwoPointShotCount + .Player(10).TwoPointShotCount _
            + .Player(11).TwoPointShotCount + .Player(12).TwoPointShotCount _
            + .Player(13).TwoPointShotCount + .Player(14).TwoPointShotCount _
            + .Player(15).TwoPointShotCount + .Player(16).TwoPointShotCount _
            + .Player(17).TwoPointShotCount + .Player(18).TwoPointShotCount

        TwoS = .Player(1).TwoPointShotScore + .Player(2).TwoPointShotScore _
            + .Player(3).TwoPointShotScore + .Player(4).TwoPointShotScore _
            + .Player(5).TwoPointShotScore + .Player(6).TwoPointShotScore _
            + .Player(7).TwoPointShotScore + .Player(8).TwoPointShotScore _
            + .Player(9).TwoPointShotScore + .Player(10).TwoPointShotScore _
            + .Player(11).TwoPointShotScore + .Player(12).TwoPointShotScore _
            + .Player(13).TwoPointShotScore + .Player(14).TwoPointShotScore _
            + .Player(15).TwoPointShotScore + .Player(16).TwoPointShotScore _
            + .Player(17).TwoPointShotScore + .Player(18).TwoPointShotScore
    End With
    
    Point = TwoT & "-" & (TwoS / 2)
    
End Function

[ツリー表示へ]
タイトルRe: コードを短く簡潔にするには?
記事No12125
投稿日: 2008/04/27(Sun) 07:43
投稿者nobu
下記の様に For 〜 Next 文を使用してみて下さい。

Private Function Point()
  Dim TwoT As Long
  Dim TwoS As Long
  Dim i As Integer   '追加
  
  TwoT = 0 '明示的にゼロにしたほうが良いかも
  TwoS = 0 '明示的にゼロにしたほうが良いかも

     With Game.Team(0)
    
         For i = 1 To 18
           TwoT =  TwoT  + .Player(i).TwoPointShotCount
         Next i

         For i = 1 To 18
           TwoS =  TwoS  + .Player(i).TwoPointShotScore
         Next i

      End With

     Point = Cstr(TwoT) & "-" & Cstr((TwoS / 2))

End Function

>    Point = TwoT & "-" & (TwoS / 2)

'Point の型宣言がされていませんが & "-" & と文字を結合して
'いるところからして文字( String ) でしょうか?
'だとすれば Long と String を結合ではエラーが出ませんか?
  
    

[ツリー表示へ]
タイトルRe^2: コードを短く簡潔にするには?
記事No12126
投稿日: 2008/04/27(Sun) 09:15
投稿者花ちゃん
簡潔にと言うなら下記の方がいいかも。

          For i = 1 To 18
            TwoT =  TwoT  + .Player(i).TwoPointShotCount
            TwoS =  TwoS  + .Player(i).TwoPointShotScore
          Next i

# 毎回同じような質問をされているような。

[ツリー表示へ]
タイトルRe^3: コードを短く簡潔にするには?
記事No12127
投稿日: 2008/04/27(Sun) 09:57
投稿者nobu
花ちゃん さん、いつもお世話になっています。

> 簡潔にと言うなら下記の方がいいかも。

そうですね、For文を1ケにまとめた方が簡潔でした!

[ツリー表示へ]
タイトル解決しました。
記事No12128
投稿日: 2008/04/27(Sun) 10:52
投稿者tea
nobuさん、花ちゃんさん、返事が遅くなりましたが、回答をして
いただきまして本当にありがとうございます。
毎回基礎的な質問で申し訳ありません。

[ツリー表示へ]