トップページ⇒tech
116コメント25KB

iとjを見分ける労力=無駄【目がチカチカ】

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2009/05/28(木) 20:26:08
jの変わりにkを使ってる奴
xyzを使ってる奴
abcを使ってる奴
i ii iii viを使ってる奴
それは必然

0002デフォルトの名無しさん2009/05/28(木) 20:36:11
別に好きなようにすればいいよ。
でも、意味のない識別子にするとデバッグのときに追えなくなるから気を付けてね。
0003デフォルトの名無しさん2009/05/28(木) 20:39:37
いや、ijk以外はヘタクソだろ。
「こっちのほうが読みやすい」って変な工夫するはいらないから、素直に書いてほしい。
0004デフォルトの名無しさん2009/05/28(木) 20:42:48
いやいや、foreachでiもjも出番なし。
0005デフォルトの名無しさん2009/05/28(木) 20:54:03
FORTRANでもあるまいし
0006デフォルトの名無しさん2009/05/28(木) 22:29:52
でもiとjは使いやすいんだよな、慣れてるから
ただ最近はm使う。見やすいから
0007デフォルトの名無しさん2009/05/28(木) 22:34:17
見易さで言うとwとoもよさそうだな
0008デフォルトの名無しさん2009/05/28(木) 23:10:24
m を使うと n が判り辛い罠
0009デフォルトの名無しさん2009/05/29(金) 02:02:55
i:|1Ij;
0010デフォルトの名無しさん2009/05/29(金) 04:46:51
ai jeyでいいんじゃないの
0011デフォルトの名無しさん2009/05/29(金) 04:48:36
h i kを使ってるおれは馬鹿ですか?
p q rもいいとおもわれ
0012デフォルトの名無しさん2009/05/29(金) 04:49:04
このスレッドは天才チンパンジー「アイちゃん」が
言語訓練のために立てたものです。

アイと研究員とのやり取りに利用するスレッドなので、
関係者以外は書きこまないで下さい。

                  京都大学霊長類研究所
0013デフォルトの名無しさん2009/05/29(金) 07:14:05
プログラム本体はaaa.exe
関数はaa()
変数はa
でもループカウンタはiだな。入れ子のときはk使うわ
0014デフォルトの名無しさん2009/05/29(金) 07:20:33
#define j i
0015デフォルトの名無しさん2009/05/29(金) 07:28:49
俺はプライベートでは
ii,jj,kkを使ってるな
0016デフォルトの名無しさん2009/05/29(金) 09:34:48
変な工夫しなくて、普通に書いてほしいよ。
いやマジで。
0017デフォルトの名無しさん2009/05/29(金) 12:00:04
プログラムは prog
関数は func()
変数は buf とか ret とか err とか
ループカウンタは i, j, k, m, n
0018デフォルトの名無しさん2009/05/29(金) 12:01:17
誰かプログラム専用フォントを再発明して、開発環境では常にそれを使用してほしいよ。
0の中に斜め線仕込むとか、全角記号は全角らしくでかでか極太とか
0019デフォルトの名無しさん2009/05/29(金) 12:21:43
プログラマーが好きなフォント
http://pc11.2ch.net/test/read.cgi/prog/1146992332/

>>1
削除以来出しとけよクズ
0020デフォルトの名無しさん2009/05/29(金) 12:23:00
>>18 全角記号なんて使うの?

普段開発にはMacを使ってるけど、Osaka等幅やMonacoは結構見やすい
気がする。0に斜線はいってるし、1とlとIが割とはっきり区別できる。
昔から使ってるから慣れきってるだけなんだろうけど。
0021デフォルトの名無しさん2009/05/29(金) 14:31:26
Osakaはいいね。プロポーショナルでも悪くないし。
0022デフォルトの名無しさん2009/05/30(土) 17:27:02
>ループカウンタはiだな。入れ子のときはk使うわ

やっぱりそういう奴いるんだね。
安心したよ
0023デフォルトの名無しさん2009/05/31(日) 11:01:56
文字サイズでかくすれば、見間違えない
0024デフォルトの名無しさん2009/05/31(日) 13:26:49
プログラマなら、1文字識別子だけ大きなフォントで表示するエディタを
作る方向で解決しろよ。
0025デフォルトの名無しさん2009/05/31(日) 13:36:18
“ぐ”が大きい
0026デフォルトの名無しさん2009/06/01(月) 11:01:32
陰唇がハミ出してるんですね。
0027デフォルトの名無しさん2009/06/04(木) 23:13:30
(i)←まんこ
(j)←まんこから汁垂れてる
(k)←生えたて
(m)←mankoのm
(n)←こどものちんちん勃起中
0028デフォルトの名無しさん2009/06/06(土) 00:37:56
iとjは慣用されている文字だから、むやみに変えるべきではないよ。
ループ文のインデントの深さで見分けはつくでしょ。
0029デフォルトの名無しさん2009/06/06(土) 07:11:29
>>28
お前…ぜんぜん本質をわかってないな。
for(i=0;i<10;i++)
 for(j=0;j<i;j++)
  a=b[j]+c[i]+d[j][j][i];
これのi,jの見分けとインデントとどう関係があんだよ。


>>1にマジレスするとフォント変えろってことだけど。
0030デフォルトの名無しさん2009/06/07(日) 00:20:28
>>27
このまま誰にもレスされなかったらどういう気分になってた?
0031デフォルトの名無しさん2009/06/07(日) 00:24:59
iベトベト
jゼリー
と覚えればいい
0032デフォルトの名無しさん2009/06/07(日) 22:14:06
>>30
全米が泣いた
0033デフォルトの名無しさん2009/06/09(火) 02:57:42
iとかjってどういう経緯で使うようになったの?
0034デフォルトの名無しさん2009/06/09(火) 03:07:14
Iterator=繰返子
0035デフォルトの名無しさん2009/06/09(火) 03:24:06
ほぉ!
じゃぁiが本来の意味か。
j,kは邪道だな
0036デフォルトの名無しさん2009/06/09(火) 07:35:08
インクリメントじゃないの?
0037デフォルトの名無しさん2009/06/09(火) 07:41:27
integerでしょ。
0038デフォルトの名無しさん2009/06/09(火) 09:07:06
 iterationだろ?
0039デフォルトの名無しさん2009/06/09(火) 09:10:05
逝てらっしょん♪
0040デフォルトの名無しさん2009/06/09(火) 09:14:16
調べたら、教えて!gooにも同じ質問がw
http://oshiete1.goo.ne.jp/qa1485989.html

ここでもiteration, integer, increment が挙がってるけど結局どれが正しいのか・・・
まぁ、forループのカウンタとしてはiterationが一番しっくりくるけど
0041デフォルトの名無しさん2009/06/09(火) 10:28:33
index に決まってる。
0042デフォルトの名無しさん2009/06/09(火) 10:37:57
もともとFORTRANから来てる。
Iで始まる変数はintだったから、DOループにIを使ってたのが始まり。
0043デフォルトの名無しさん2009/06/09(火) 10:41:56
>>42

数学の方が古い。FORTRAN で I..N を整数にしたのは数学でそうする習慣が
あったから。

ttp://ja.wikipedia.org/wiki/%E6%97%8F_(%E6%95%B0%E5%AD%A6)

を見れば index に由来することがわかる。
0044デフォルトの名無しさん2009/06/09(火) 14:45:33
>>35
> j,kは邪道だな
jcも邪道。
0045デフォルトの名無しさん2009/06/09(火) 14:48:37
やっぱりjsだよね
0046デフォルトの名無しさん2009/06/09(火) 15:34:21
for(unko=1;unko<10;unko++)
for(kuso=1;kuso<10;kuso++)
for(geri=1;geri<10;geri++)
{
0047デフォルトの名無しさん2009/06/09(火) 16:16:34
geri=unko+kuso;
}
/* 無限ループって恐いな */
0048デフォルトの名無しさん2009/06/09(火) 23:51:48
仕方ないなぁ、おじちゃんがageてあげよう。今回だけだぞ♪
0049デフォルトの名無しさん2009/06/10(水) 07:38:54
w
0050デフォルトの名無しさん2009/06/11(木) 00:57:19
基本は i, j, k..

ときどき i0, i1, i2, ...
てやってる
0051デフォルトの名無しさん2009/06/11(木) 10:44:35
数字くっつけると見づらくないか
i ii iii
とかどうよ
0052デフォルトの名無しさん2009/06/15(月) 14:01:42
k12x10漢字ってフォント使ってるよ。
0053デフォルトの名無しさん2009/06/22(月) 22:04:02
この問題ってぶっちゃけ「つべこべいわずにドット0.303の30インチ1920x1080くらいを使え」ってこと?
0054デフォルトの名無しさん2009/06/22(月) 22:08:32
メガネ作り直せって話じゃね?
0055デフォルトの名無しさん2009/06/23(火) 07:46:37
ループカウンタはカウンタってわかる方がいいと思うからijklにしてるわざと
0056デフォルトの名無しさん2009/06/23(火) 10:06:32
そのijklがiiklなのかjiklなのかilkjなのかわかりにくいという話ではw
0057デフォルトの名無しさん2009/06/23(火) 10:32:42
コーディングスタイルとかルールは、よっぽどセンスと見識があるやつ以外は
自分で考えるとかやめてほしい。
普通に書いてほしいよ。
だめなやつほど、いろいろこねくり回して変なの考える。
0058デフォルトの名無しさん2009/06/23(火) 12:38:14
static int
MyFunc(int arg, int arg2, inr arg3)
{
 return 0;
}

利点: 関数名の先頭がかならず行頭に一致するので、定義部を探しやすい(正規表現で一発)
欠点: 短い型名、短い関数名、少ない引数のときになんか見た目がヤダ
0059デフォルトの名無しさん2009/06/23(火) 13:25:51
>58
正規表現で一発でない定義部って、引数を複数行に分ける書き方のこと?

俺は、出来る限りプロトタイプ全体を一行で書きたい派。あまりに長いのは仕方なく分けることもあるけど。
grep等を掛けたとき、出てくるのは出来ればプロトタイプ全体であって欲しい。
後からその行付近をエディタで見て、static int の部分を確認するのは二度手間に感じる。
0060デフォルトの名無しさん2009/06/23(火) 13:30:13
今時定義検索にgrep使う男の人って…
0061デフォルトの名無しさん2009/06/23(火) 13:36:33
int の t と r を見分ける労力、の話かと思った
0062デフォルトの名無しさん2009/06/23(火) 13:44:59
inr?
0063デフォルトの名無しさん2009/06/23(火) 13:46:10
>>58 のarg3
0064デフォルトの名無しさん2009/06/23(火) 13:53:59
それは気付かねえわwww
0065デフォルトの名無しさん2009/06/23(火) 13:54:22
正規表現で探せる、探せないの問題ではなくて、
^MyFunc
だけでマッチするから楽ってことでしょ
0066デフォルトの名無しさん2009/06/23(火) 13:56:51
ああ、定義部「のみを」マッチさせるのが楽ってことね
0067デフォルトの名無しさん2009/06/23(火) 14:05:40
Python C コーディング規約
http://www-acc.kek.jp/WWW-ACC-exp/KEKB/Control/Activity/Python/doc-j/pep-0007-J.html

Mozilla C/C++ コーディング規約
https://developer.mozilla.org/ja/Mozilla_Coding_Style_Guide

GNU C コーディング規約
http://www.sra.co.jp/wingnut/standards-j_toc.html

おまけ
http://homepage3.nifty.com/owl_h0h0/unix/job/UNIX/chk_sheet.html
0068デフォルトの名無しさん2009/06/23(火) 14:27:07
GNUはフォーマットがキモい…
0069デフォルトの名無しさん2009/06/24(水) 12:20:57
tabemono
gero
unko

これならすぐにわかる。
食べ物がゲロになってウンコになるわけだから、何番目のループかすぐわかる
0070デフォルトの名無しさん2009/06/25(木) 18:33:40
仮にunkoに3が入ってたら何を表すの?
0071デフォルトの名無しさん2009/06/25(木) 18:56:08
>>65
それだと "MyFunc" を含む関数定義を探す時に面倒なんだよね。
"FooMyFunc" もあれば "MyFuncBar" もあるみたいな時に。

例えば GUI アプリでウィンドウを作成する関数は大抵の場合、
"CreateWindow" という文字列を含んでいるんだけど、それが
"MyCreateWindow" だったり "AppCreateWindow" だったり
すると ^CreateWindow では引っ掛けられなくなる。
0072デフォルトの名無しさん2009/06/25(木) 21:44:33
iilijiiijiijiijiijiijiiijijlijijilijijiijijiijijiijijiijijijijliiiijiiljijiijijijiji
jijijijijijijijijijijijijijijijijijijijijijjijijijijlijijijijijijliijjijiijjiljiji
jjjjjjjjjjjjjjjjjljjljjjljjjjjjjjjjjjjljjjjjjljjjjjjjjljljjjjjjjjjjjljljjjjjjjjjjjjljjjjj
ijijjijjijljlijijjijjijijijjijijjijjijjijijjijijjijjiijjjijjijjjijjijjjijjijjijjj
jijijijijijijijlijijijijijlijijijijijijijijijljijjijijjjijijlijijijijijijijijlijlijij
0073デフォルトの名無しさん2009/06/26(金) 10:29:56
つ ^[:word:]*MyFunc
0074デフォルトの名無しさん2009/06/27(土) 17:01:18
jijijjiiiiijijiiijijijjjijjjjjjjjiiiiijijijiiijijjjjjjiijiijjjjjjjiiiijijijjiiij
jjjjijijjijijiiijjjjijijijijjjiijijijjijijiijiijijjijjjijijjjjijjijjijjijjiiijij
jiiiiijijjjjjjijijiijiiiijijiijjjijiiijjjijjijijijijijjijijijjjijijjjijijjiiijji
ijjjiiiiijijiiiijjjiijjiijjjjijjijijiiijjjiijjiijjjjijiijiijijiiiijjiiiiiiijjjji
ijjjijjijiijjjiiijiiijijjjiijiijjjijjjjijiijjjijjiijjiijiiijijjijiijjiijijiiiiji
ijiijiiijijiijjiijiiijiijjjjjijjjijjjiiiijijjiijiijiiijjijjijiijjjjjjjijjjijijjj
iijiiiiijiijjjjijjjjijjijijjiiijjjjjjjijjjiiijjjjjijjjjjiijiiijjijiijijjiiiiiiii
ijijijijiiiiiiiiijijjjjjiiiijijiiijjijijjiijjiiiiiiiijjjjiijijijjiiiiijiijiijiji
iijjiijjiijijjijjijjjijjijjiiiijiijiijjiijiijjjjjjjjiiiiijiiijijiijiijiiiiiiiiij
iijjjiiiijjiijijjiijjijjiiijjjiijjjiiijjjjijijiiijjjjjiijjjiijiiijjjjjijijijjjji
ijijiiiijjjiiijjjiiiiijiiiiijiijiiiiiijijjijiiijiiijjjiiiiiijiiijjiiiijjijjiiiji
jijiiijiiijijjijijjjjiijjjjijijiiiiiiiijijjiiijjjijiiijjjjjijjjiijijijiijiiiiiii
0075デフォルトの名無しさん2009/06/29(月) 15:19:41
というか、forが3重以上になったらそもそも別関数にするよね

ローカル関数が定義できるような言語だったら、引数で環境を引き継ぐ必要がないから、なおさら。
0076デフォルトの名無しさん2009/06/30(火) 02:59:46
3重ループなら
t r f
とか
t m n
がいいんじゃないのかな。
tk utu kine
もいいかも
0077デフォルトの名無しさん2009/06/30(火) 07:38:22
処理そのものが3次元な何かを対象にしてたら珍しくも無いんじゃないか?
そういう場合は処理分けるのは違う気がする。
0078デフォルトの名無しさん2009/06/30(火) 09:34:27
三重ループじゃないけど、教科書によく載ってるバブルソートとかでも
i j k の三つは必要だよね。

0079デフォルトの名無しさん2009/06/30(火) 09:58:31
いいえ。
--
procedure bubbleSort( A : list of sortable items ) defined as:
for each i in 1 to length(A) - 1 do:
for each j in 2 to length(A) - i + 1 do:
if A[ j ] < A[ j - 1 ] then
swap( A[ j ], A[ j - 1 ] )
end if
end for
end for
end procedure
--
制御変数はたった二つで事が足りていますね。
0080デフォルトの名無しさん2009/06/30(火) 11:17:49
>79
全く話し変わるけど、そのコードの言語は何?
0081デフォルトの名無しさん2009/07/15(水) 04:35:52
ここまでJを大文字にする派が一人も居ないだと
0082デフォルトの名無しさん2009/07/15(水) 11:09:14
規約とか、言語によっては仕様で
変数名を大文字で開始ってのはできないことがあるからなぁ
そうでなくても勘違いを招きそうであんまりやりたくない
0083デフォルトの名無しさん2009/07/15(水) 14:51:22
最近は、識別子をUnicodeで自由に書ける言語も多いから、アイ、ジェイでOK
0084デフォルトの名無しさん2009/07/15(水) 17:49:02
結局、この手の問題って、
ドットインチを大きくできれば、それでいい。なんだよなあ。
いろいろ考えるよりも、
大きなモニターをおけるスペースを空けることを考えたほうが早かったりする。
0085デフォルトの名無しさん2009/07/15(水) 17:51:36
ijのためだけに他の文字もでかくなるのはいやだ
0086デフォルトの名無しさん2009/07/15(水) 22:25:42
windows じゃどうかしらんが、X だとエディターのフォントを
全部ボールドにすれば OK の場合もある
0087デフォルトの名無しさん2009/07/15(水) 23:14:42
フォントを変えればいいだけじゃない?
0088デフォルトの名無しさん2009/07/15(水) 23:52:44
ラテン語系みたいな未熟な言語・文字でプログラム書くから悪いんだよ
その点、漢字なら問題無い
0089デフォルトの名無しさん2009/07/16(木) 04:13:59
土と士とか、臼と白とか漢字でもいちゃもんつけられそうな気がするけど。
0090デフォルトの名無しさん2009/07/16(木) 04:53:33
行間ギリギリにデスセンダ充てれるエディタを誰か作ればいいんだよ。
0091デフォルトの名無しさん2009/07/16(木) 09:02:38
>>89
臼が出てくるプログラムとは、はてさて私には想像もできないのです。
0092デフォルトの名無しさん2009/07/16(木) 18:09:55
courier new 最強
0093デフォルトの名無しさん2009/07/16(木) 22:58:43
ループカウンタなんて、使う必要が無い。
内部イテレータが無い言語なんて、ありえないでしょ。
0094デフォルトの名無しさん2009/07/16(木) 23:56:04
>>91
自動餅搗き器の組み込みとか
0095デフォルトの名無しさん2009/07/17(金) 00:09:03
> ループカウンタなんて、使う必要が無い。
「入力がある状態になるまで何回ループ回ったのか」
とかの、ループカウントそのものが重要な場合どないすんの?
0096デフォルトの名無しさん2009/07/17(金) 01:00:30
重要なら、意味のある名前をつければいい。
0097デフォルトの名無しさん2009/07/31(金) 02:59:03
そもそも1文字の変数名は保守性を下げる

ソース中のどこでこのカウンタを使ってるのかサーチできないじゃん
0098デフォルトの名無しさん2009/07/31(金) 03:37:42
9割方はfor (int i = 0; の形で使って有効範囲はforの中だけになるだろ。そこまで絞れれば十分だと思うけど。
0099デフォルトの名無しさん2009/07/31(金) 07:19:34
>>98
こんなソースも実在する。
--
void func()
{
int i;
i = anotherFunc();
if (i != 0) return;
for (i = 0; i < N; ++i) {
...;
}
}
0100デフォルトの名無しさん2009/07/31(金) 10:12:54
>>98
仮にfor文内だけだとしても

検索して機械的にヒットするのと目視で確認しなきゃいけないのとじゃ
速度も確実性も劣るじゃん
0101デフォルトの名無しさん2009/07/31(金) 14:06:57
単語単位での検索と組み合わせればいいのでは。

それでも1文字だと物理的に空間を取らないから目に入りづらいとか
そこまで言われたら返しようがないけど。

>>99
それが残りの1割でしょ
0102デフォルトの名無しさん2009/08/02(日) 15:32:42
iの使用禁止のとこで、for文でloopCounterとか機械的に使ってるとこもあるけど
それ意味あるのか、と思うけどな・・・
0103デフォルトの名無しさん2009/08/02(日) 21:03:23
iとjが見分けにくいなら、jとk使えばいいじゃない。

・・・え、なんか違う?
0104デフォルトの名無しさん2009/08/02(日) 21:09:38
カウンタとしてjなんてほとんど使ったことないなあ。
2つ以上カウンタが必要な場面では、ちゃんと名付けてやることが多いわ俺は。
例えばxとyとか、rowとcolとか。
0105デフォルトの名無しさん2009/08/09(日) 10:19:01
よっぽど小さいフォントでない限り、等幅ならiとjが見分けづらいということはないと思うんだけど。

「意味のある名前をつける」は俺も賛成だけど、
i、j、kには「意味」はなくても「意図」は込められてるよ。
極めて一時的な変数である、という意図が。

ロジックの都合上出てきた、「名前のつけづらい変数」に
無理やり名前をつけるのはちょっとしたストレスではある。
0106デフォルトの名無しさん2009/08/13(木) 20:21:58
a, b, c, dにした方が可読性が上がる。
過去の根拠不明瞭な因習にとらわれることなく
真によいものを採用して行こうぜ。
0107デフォルトの名無しさん2009/08/13(木) 20:57:41
可読性はかわらないだろ。
逆になにか意図があるのかと、考えなくちゃならない。a,b,cとか。
0108デフォルトの名無しさん2009/08/13(木) 22:51:22
但しPerlで$aや$bを使ってはならない
0109デフォルトの名無しさん2009/08/13(木) 22:54:47
Perlは一文字の変数にはいろんな意味があるからね…
0110デフォルトの名無しさん2009/09/06(日) 08:57:32
perlの$aと$bってソート用に使うやつくらいだと思ってたけど、
増えたのかな?
0111デフォルトの名無しさん2009/09/06(日) 21:03:19
$aと$b以外は記号ばっかじゃないかな
ただ$c辺りはいつか使われそうで恐いから使ってないが
0112デフォルトの名無しさん2010/09/15(水) 10:18:47
老眼プログラマーには i と j はキツイんだよ
0113デフォルトの名無しさん2010/09/20(月) 12:32:11
iiiijiiiiijjjiiijijijijijiiiijjijijijijjjjiiiiiijjjjiiiiiiiiijjjjjjjjjjijjijijijijjijjijiijijijijijiji
0114デフォルトの名無しさん2010/10/15(金) 05:46:44
http://dl1.getuploader.com/g/nix/11/font.png

上、日本語等幅 (全角の1/2幅)
下、プロポーショナル
0115デフォルトの名無しさん2011/04/13(水) 03:28:42.56
>>112
ド近眼でも見づらい
0116デフォルトの名無しさん2011/11/20(日) 11:21:51.10
見づらいね
■ このスレッドは過去ログ倉庫に格納されています