1

私はこのスレッドを読んでいましたhttps://stackoverflow.com/questions/268538/tab-versus-space-indentation-in-c-sharpタブ対スペースのインデントについて。スレッドの教訓は、「インデント用のタブ、配置用のスペース」につながります。インデントとは何を意味し、スペースとは何を意味するコードのコード例で説明してもらえますか? コードのコンテキストで2つのことを混同しているだけですか?

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 は 1 つのタブ
sを表し、1 つのスペースを表し ます

于 2012-07-18T07:16:50.970 に答える