アカウント名:
パスワード:
新人の頃、C言語で以下のようなコードを書いたら、
int func( ) {
for ( ) { 処理1 if (処理1失敗) goto ERROR }
for ( ) { 処理2 if (処理2失敗) goto ERROR }
正常処理 return 0;
ERROR: エラー処理 return -1;}
goto文は禁止ということで、上司に以下のように訂正させられたことがありました。
int func( ) { int error_flag1 = error_flag2 = 0;
for ( ) { 処理1 if (処理1失敗) { error_flag1 = 1 break; } }
if (error_flag1 == 0) { for ( ) { 処理2 if (処理2失敗) { error_flag2 = 1 break; } } }
if (error_flag1 == 0 && error_flag2 == 0) { 正常処理 return 0; }
エラー処理 return -1;}
どう見ても訂正後の方が読みにくいだろうといったら、ルールだからと(←いや、あなたが決めたんでしょ?)
いや、目的は「エラー処理」を一カ所に纏めたいってことなんで
>> いや、目的は「エラー処理」を一カ所に纏めたいってことなんで
「その目的(目標設定)が間違ってる」ってツッコミじゃないの?
try catch が唖然としています
うん、それで?C言語にはないからこそ goto 文で同等のことを実現したって話でしょ。
それとも finally の目的が間違ってるってこと? 僕って生まれてきてはいけない子だったの?ああ、僕って要らない子だったんだ、うわあああああん(finally 15歳)
書き方よくわかんないけど、こんな感じなんでない?
int func( ) { if (subfunc()==0) 正常処理 else エラー処理}
int subfunc( ) { for ( ) { 処理1
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
にわかな奴ほど語りたがる -- あるハッカー
C言語で goto文禁止 (スコア:1)
新人の頃、C言語で以下のようなコードを書いたら、
int func( ) {
for ( ) {
処理1
if (処理1失敗) goto ERROR
}
for ( ) {
処理2
if (処理2失敗) goto ERROR
}
正常処理
return 0;
ERROR:
エラー処理
return -1;
}
goto文は禁止ということで、上司に以下のように訂正させられたことがありました。
int func( ) {
int error_flag1 = error_flag2 = 0;
for ( ) {
処理1
if (処理1失敗) {
error_flag1 = 1
break;
}
}
if (error_flag1 == 0) {
for ( ) {
処理2
if (処理2失敗) {
error_flag2 = 1
break;
}
}
}
if (error_flag1 == 0 && error_flag2 == 0) {
正常処理
return 0;
}
エラー処理
return -1;
}
どう見ても訂正後の方が読みにくいだろうといったら、ルールだからと(←いや、あなたが決めたんでしょ?)
-------- tear straight across --------
Re: (スコア:0)
int func( ) {
for ( ) {
処理1
if (処理1失敗) return -1;
}
for ( ) {
Re:C言語で goto文禁止 (スコア:1)
いや、目的は「エラー処理」を一カ所に纏めたいってことなんで
-------- tear straight across --------
Re: (スコア:0)
>> いや、目的は「エラー処理」を一カ所に纏めたいってことなんで
「その目的(目標設定)が間違ってる」ってツッコミじゃないの?
Re: (スコア:0)
try catch が唖然としています
Re: (スコア:0)
Re: (スコア:0)
うん、それで?
C言語にはないからこそ goto 文で同等のことを実現したって話でしょ。
それとも finally の目的が間違ってるってこと? 僕って生まれてきてはいけない子だったの?
ああ、僕って要らない子だったんだ、うわあああああん(finally 15歳)
Re: (スコア:0)
書き方よくわかんないけど、こんな感じなんでない?
int func( ) {
if (subfunc()==0)
正常処理
else
エラー処理
}
int subfunc( ) {
for ( ) {
処理1
Re: (スコア:0)
等という形式に出くわしたことが。