作者pizza0117 (阿水~*)
看板C_and_CPP
标题Re: [问题] 条件运算元 ? :
时间Wed Jun 17 08:38:03 2009
我之前写程式要输出矩阵的时候
为了换行常常用到这个耶~
主要是放在for(?; ?; 这里);
例如for(i=0; i<31; i++,(i%7)? printf("%2d\n",m[i]) : printf("%2d ",m[i]) )
这个例子是写万年历里面用到的
上面那个好像不太好看= =+
先看下面的好了
假设一个阵列int a[3][4] = {...};
通常输出都是这样写
for(i=0; i<3; i++)
{
for(j=0; j<4; j++)
{
printf("%d ",a[i][j]);
}
printf("\n");
}
我写程式莫名的不喜欢{}
能省则省
for(i=0; i<3; i++)
{
for(j=0; j<4; j++)
printf("%d ",a[i][j]);
printf("\n");
}
为了i回圈的那个换行一定要加{} ˋˊ
所以我就把程式改成
for(i=0; i<3; i++,printf("\n"))
for(j=0; j<4; j++)
printf("%d ",a[i][j]);
老实说我不知道这样用是不是正确的~
但目前还没遇到错误~就继续使用了~
曾想过要不要改成这样
for(i=0; i<3; i++,printf("\n"))
for(j=0; j<4; j++,printf("%d ",a[i][j]));
不过觉得好像太夸张了就没有这样做了
※ 引述《gozha (勾炸)》之铭言:
: ※ 引述《owlran (鳌伦)》之铭言:
: : 这学期把C学完了,最近复习时想到一个问题
: : 条件判断 ? 运算式1 : 运算式2
: : 如果多层的if跟else if
: : 是否也可以用这种方式写呢 ?
: ( 条件判断 )?(
: ( 条件判断 )?(
: 运算式1
: ):(
: 运算式2
: )
: ):(
: ( 条件判断 )?(
: 运算式1
: ):(
: 运算式2
: )
: )
: 好像没有比较好看= =
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 122.116.252.32
1F:推 zlw:乍看之下应该是OK,在for里面会想到用printf,感觉很强大 06/17 08:45
2F:推 sunkill:有趣:D 06/17 08:56
3F:推 VictorTom:同感, 在for里printf, 颇有趣:) 06/17 09:19
4F:→ adrianshum:省 {} 是坏习惯, 我是建议都加, 以後看起来清楚很多 06/17 10:20
5F:→ adrianshum:还有, 把程式硬压成这样, 既不会跑得快, 也不会容易读 06/17 10:21
6F:→ adrianshum:何苦? 06/17 10:21
7F:推 ftsyblade:同意... 程式还是简单整齐最好..不要乱缩 06/17 10:48
8F:→ MOONRAKER:赶快报名IOCCC 06/17 11:10
9F:推 ledia:自己写给自己看的程式, 或 write once 的, 这样写无可厚非啦 06/17 13:50
10F:→ ledia:如果你要跟别人合作, 千万不要拿这种东西去整别人, 积德积德 06/17 13:50
11F:→ ledia:(write once 指的是那种跑个结果就丢掉的小程式) 06/17 13:52
12F:推 zlw:然後 run anywhere 06/17 13:54
13F:推 adrianshum:write once 的话, 写这些比写得长一点的更麻烦吧其实 06/17 15:04
14F:→ MOONRAKER:run anywhere 其实通常需要在 everywhere 都做点调整 06/17 16:02
15F:→ MOONRAKER:不容易看懂的code也不容易调整 除非真正的"一发程式" 06/17 16:03
16F:推 ddavid:我就算只有一行也会用{}来括XD 06/17 17:04
17F:推 legnaleurc:那算 write only 吧XD 06/17 17:30
18F:推 godisme:如果你要优化你的程式~大可全写在一行 = =+..多几个{}较好 06/17 19:17
19F:→ MOONRAKER:全部写在一行会真的optimize到哪里吗? 06/18 02:52
20F:→ MOONRAKER:这真是太有创意了,杰克! 06/18 03:38
21F:推 zlw:档案大小最佳化吗,然後在web上传输替中华电信省频宽 06/18 04:18
22F:推 legnaleurc:写成一行只有 JavaScript 有差吧 = = 06/18 12:20
23F:推 ledia:写成一行不见得跑得比较快, 就算看 JS, 也不见得比较短 XD 06/18 13:14
24F:推 Arton0306:不喜欢{} 那一定要玩玩python呀 06/20 21:22