1

我正在阅读此线程https://stackoverflow.com/questions/268538/tab-versus-space-indentation-in-c-sharp重新调整制表符与空格缩进。该线程的寓意导致“缩进的制表符,对齐的空格”。你能用一些代码示例来解释一下缩进是什么意思吗?空格是什么意思?我只是对代码上下文中的两件事感到困惑?

4

4 回答 4

2

该线程的示例:

switch(foo)
{
   case bar:      Do1(); break;
   case foobar_2: Do2(); break;
}

在这里,关键字“case”是缩进的。"bar:" 和 "foobar_2:" 向左对齐。

您可以想象有一个框,其中相同的单词可以左对齐或右对齐。剩下:

switch(foo)
{
   case bar:      Do1(); break;
   case foobar_2: Do2(); break;
}

对:

switch(foo)
{
   case      bar: Do1(); break;
   case foobar_2: Do2(); break;
}

由于选项卡配置不同,如果使用选项卡完成这种事情会变得一团糟,所以这里必须有空格。但是,使用不同的制表符宽度配置,缩进就变成了这样:

switch(foo)
{
       case bar:      Do1(); break;
       case foobar_2: Do2(); break;
}

这更像是一个偏好问题,因为它不会弄乱哪条线匹配什么。

于 2012-07-18T07:11:36.923 回答
1

Java 代码约定中,它建议始终使用空格。这在每个编辑器中都以相同的缩进出现,并且比混合制表符/空格方法更简单。

于 2012-07-18T07:10:44.373 回答
1

在这里你可以看到一个对齐的例子——条件被对齐在另一个之下。通常,您无法使用选项卡来实现此目的,因为

a) 如果制表符大小为 2 或 4,则不能用制表符表示 3 个空格

b)即使您计算机上的标签大小为 3 并且您设法与标签对齐,另一个人也可以有不同的标签大小并且对齐会中断(条件不会在另一个之下。

对齐示例

于 2012-07-18T07:24:56.347 回答
0
public class SwitchDemo {
    public static void main(String[] args) {

        int month = 8;
        String monthString;
        switch (month) {
            case 1:  monthString = "January";
                     break;
            case 2:  monthString = "February";
                     break;
            case 3:  monthString = "March";
                     break;
            case 4:  monthString = "April";
                     break;
            case 5:  monthString = "May";
                     break;
            case 6:  monthString = "June";
                     break;
            case 7:  monthString = "July";
                     break;
            case 8:  monthString = "August";
                     break;
            case 9:  monthString = "September";
                     break;
            case 10: monthString = "October";
                     break;
            case 11: monthString = "November";
                     break;
            case 12: monthString = "December";
                     break;
            default: monthString = "Invalid month";
                     break;
        }
        System.out.println(monthString);
    }
}

行上的缩进是用制表符制作的。
switch-case 语句中的对齐是用空格完成的。

ttttttttttttttttcase 9:ssmonthString = "September";
ttttttttttttttttttttttttsbreak;
ttttttttttttttttcase 10:smonthString = "October";
ttttttttttttttttttttttttsbreak;

tttts代表一个tab
s代表一个空格

于 2012-07-18T07:16:50.970 回答