1. ホーム
  2. java

[解決済み】カウンターの仕組みは?/ 非常に基本的なJava

2022-01-27 08:28:13

質問内容

ある本で紹介されていた、カウンターのあるコードがあります。なぜそのように動作するのか理解できません。具体的には、"for"ループで生成された行をカウンタがカウントするのはどうしてでしょうか?関係演算子と条件式を使った "if" ループがあるのはわかりますが、コードが行数をカウントすることをどうやって知るのか、私にはまだ明確ではありません。 以下はそのコードです。

*/  
class GalToLitTable {  
public static void main(String args[]) {  
double gallons, liters; 
int counter; 

counter = 0; 
for(gallons = 1; gallons <= 100; gallons++) { 
  liters = gallons * 3.7854; // convert to liters 
  System.out.println(gallons + " gallons is " + 
                     liters + " liters."); 

  counter++; 
  // every 10th line, print a blank line        
  if(counter == 10) { 
    System.out.println(); 
    counter = 0; // reset the line counter 
   } 
  } 
 }   

ご協力をお願いします。

解決方法は?

ここでは、3つのことが起こっています。

  • あなたが持っているのは for 100回実行するループ(1-100まで)
  • ループの中で、increment演算子を使ってカウンターを増加させます。 ++ を呼び出すのと本質的に同じである。 counter = counter + 1; .
  • ループ内(インクリメントの後)では、現在値をチェックして、何らかのアクション(この場合はカウンターのリセット)を実行すべきかどうかを確認します。

以下に注釈付きのコードを見ていただければ、もう少しわかりやすいと思いますが、上記のリンク先で、より詳細な for ループと increment 演算子を使用します。

// Your counter
int counter = 0; 

// The contents of this will execute 100 times
for(gallons = 1; gallons <= 100; gallons++) { 

    // Omitted for brevity

    // This increases your counter by 1
    counter++; 

    // Since your counter is declared outside of the loop, it is accessible here
    // so check its value
    if(counter == 10) { 

         // If it is 10, then reset it
         System.out.println(); 
         counter = 0; 
    } 

    // At this point, the loop is over, so go to the next iteration
}