トップページ > プログラム > 2019年12月14日 > 8CJijD11

書き込み順位&時間帯一覧

26 位/155 ID中時間01234567891011121314151617181920212223Total
書き込み数0000000000000000000000202



使用した名前一覧書き込んだスレッド一覧
デフォルトの名無しさん
プログラミングのお題スレ Part16
C言語の設計ミスった危険な関数トップ10決めようぜ

書き込みレス一覧

プログラミングのお題スレ Part16
312 :デフォルトの名無しさん[]:2019/12/14(土) 22:12:52.90 ID:8CJijD11
>>309
この手の処理はPowerShellが得意だな。

function WaitingTime($now, $alarm)
{
  $wait = [DateTime]$alarm - [DateTime]$now
  if ($wait -lt 0) {$wait += [TimeSpan]"12:00" + [TimeSpan]"12:00"}
  "現在時刻 = $now"
  "アラーム時刻 = $alarm"
  "待機時刻 = $wait"
  ""
}

WaitingTime 10:00 16:00
WaitingTime 22:00 4:00
WaitingTime 12:34:56 1:23:45

--- 実行結果 ---
現在時刻 = 10:00
アラーム時刻 = 16:00
待機時刻 = 06:00:00

現在時刻 = 22:00
アラーム時刻 = 4:00
待機時刻 = 06:00:00

現在時刻 = 12:34:56
アラーム時刻 = 1:23:45
待機時刻 = 12:48:49
C言語の設計ミスった危険な関数トップ10決めようぜ
57 :デフォルトの名無しさん[]:2019/12/14(土) 22:43:29.04 ID:8CJijD11
gotoはラベルのスコープが広いから使いにくい。ループごとに別のラベル名を
付けないといけないし、ラベル名を別のループ用のものと書き間違えると
意図しない所へ飛んで行ってしまう。スパゲッティでバグの元。

ループにラベルを付ければ、スコープがそのループ内に限定され、そのループの
外にある別のループに同じラベル名を付けることができるから、書きやすく
読みやすい。例えば、こんな感じ。

for @outer (i = 1; i <= 3; i++) {
  for (j = 1; j <= 3; j++) {
    printf("%d, %d\n", i, j);
    if (i * j > 3) break @outer;
  }
}
for @outer (i = 1; i <= 5; i++) {
  for (j = 1; j <= 5; j++) {
    printf("%d, %d\n", i, j);
    if (i * j > 5) break @outer;
  }
}


※このページは、『2ちゃんねる』の書き込みを基に自動生成したものです。オリジナルはリンク先の2ちゃんねるの書き込みです。
※このサイトでオリジナルの書き込みについては対応できません。
※何か問題のある場合はメールをしてください。対応します。