Csharp/C Sharp/Language Basics/for

Материал из .Net Framework эксперт
Версия от 11:39, 26 мая 2010; Admin (обсуждение | вклад) (1 версия)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск

a for loop to display 1 to 5

/*
Mastering Visual C# .NET
by Jason Price, Mike Gunderloy
Publisher: Sybex;
ISBN: 0782129110
*/
/*
  Example4_11.cs illustrates the use of
  a for loop to display 1 to 5
*/
public class Example4_11
{
  public static void Main()
  {
    for (int counter = 1; counter <= 5; counter++)
    {
      System.Console.WriteLine("counter = " + counter);
    }
  }
}


A negatively running for loop

/*
C#: The Complete Reference 
by Herbert Schildt 
Publisher: Osborne/McGraw-Hill (March 8, 2002)
ISBN: 0072134852
*/
// A negatively running for loop. 
 
using System; 
 
public class DecrFor {     
  public static void Main() {     
    int x; 
 
    for(x = 100; x > -100; x -= 5) 
      Console.WriteLine(x); 
  } 
}


Compute the sum and product of the numbers from 1 to 10.

/*
C#: The Complete Reference 
by Herbert Schildt 
Publisher: Osborne/McGraw-Hill (March 8, 2002)
ISBN: 0072134852
*/
// Compute the sum and product of the numbers from 1 to 10. 
  
using System;  
   
public class ProdSum {   
  static void Main() {   
    int prod; 
    int sum; 
    int i; 
 
    sum = 0; 
    prod = 1; 
 
    for(i=1; i <= 10; i++) { 
      sum = sum + i; 
      prod = prod * i;       
    } 
    Console.WriteLine("Sum is " + sum); 
    Console.WriteLine("Product is " + prod); 
 
  }   
}


Declare loop control variable inside the for

/*
C#: The Complete Reference 
by Herbert Schildt 
Publisher: Osborne/McGraw-Hill (March 8, 2002)
ISBN: 0072134852
*/
// Declare loop control variable inside the for. 
 
using System; 
 
public class ForVar {   
  public static void Main() { 
    int sum = 0; 
    int fact = 1; 
 
    // compute the factorial of the numbers through 5  
    for(int i = 1; i <= 5; i++) {  
      sum += i;  // i is known throughout the loop 
      fact *= i; 
    } 
 
    // but, i is not known here. 
 
    Console.WriteLine("Sum is " + sum); 
    Console.WriteLine("Factorial is " + fact); 
  }   
}


Demonstrate the for loop

/*
C#: The Complete Reference 
by Herbert Schildt 
Publisher: Osborne/McGraw-Hill (March 8, 2002)
ISBN: 0072134852
*/
// Demonstrate the for loop. 
 
using System; 
 
public class ForDemo { 
  public static void Main() { 
    int count; 
 
    for(count = 0; count < 5; count = count+1) 
      Console.WriteLine("This is count: " + count); 
 
    Console.WriteLine("Done!"); 
  } 
}


Determine if a number is prime. If it is not, then display its largest factor

/*
C#: The Complete Reference 
by Herbert Schildt 
Publisher: Osborne/McGraw-Hill (March 8, 2002)
ISBN: 0072134852
*/
/* 
   Determine if a number is prime.  If it is not, 
   then display its largest factor. 
*/ 
 
using System; 
 
public class FindPrimes {    
  public static void Main() {    
    int num; 
    int i; 
    int factor; 
    bool isprime; 
 
 
    for(num = 2; num < 20; num++) { 
      isprime = true;  
      factor = 0; 
 
      // see if num is evenly divisible 
      for(i=2; i <= num/2; i++) { 
        if((num % i) == 0) { 
          // num is evenly divisible -- not prime 
          isprime = false; 
          factor = i; 
        } 
      } 
 
      if(isprime) 
        Console.WriteLine(num + " is prime."); 
      else 
        Console.WriteLine("Largest factor of " + num + 
                          " is " + factor); 
    } 
  }    
}


Determine smallest single-digit factor

/*
C#: The Complete Reference 
by Herbert Schildt 
Publisher: Osborne/McGraw-Hill (March 8, 2002)
ISBN: 0072134852
*/
// Determine smallest single-digit factor. 
using System; 
 
public class Ladder {    
  public static void Main() {    
    int num; 
 
    for(num = 2; num < 12; num++) { 
      if((num % 2) == 0) 
        Console.WriteLine("Smallest factor of " + num + " is 2.");  
      else if((num % 3) == 0)  
        Console.WriteLine("Smallest factor of " + num + " is 3.");  
      else if((num % 5) == 0) 
        Console.WriteLine("Smallest factor of " + num + " is 5.");  
      else if((num % 7) == 0)  
        Console.WriteLine("Smallest factor of " + num + " is 7.");  
      else  
        Console.WriteLine(num + " is not divisible by 2, 3, 5, or 7.");  
    } 
  } 
}


For loop for array

/*
 * C# Programmers Pocket Consultant
 * Author: Gregory S. MacBeth
 * Email: gmacbeth@comporium.net
 * Create Date: June 27, 2003
 * Last Modified Date:
 */
using System;
namespace Client.Chapter_3___Structs__Enums__Arrays_and_Classes
{
  public class Arrays2Chapter_3___Structs__Enums__Arrays_and_Classes
  {
    static void Main(string[] args)
    {
      //multidimensional array
      int[,] MyIntArray = new int[5, 5];
      for (int x = 0, y = 0; x < 5; x++, y++)
      {
        MyIntArray[x, y] = 0;
      }
    }
  }
}


For Loop Tester

/*
Learning C# 
by Jesse Liberty
Publisher: O"Reilly 
ISBN: 0596003765
*/
 using System;
 public class ForTester
 {
     public static void Main()
     {
         for (int counter=0; counter<10; counter++)
         {
             Console.WriteLine(
                 "counter: {0} ", counter);
         }
     }
 }


For with empty condition

/*
Learning C# 
by Jesse Liberty
Publisher: O"Reilly 
ISBN: 0596003765
*/
 using System;
 public class ForEmptyTester
 {
     public static void Main()
     {
         int counterVariable = 0;  // initialization
         for ( ;; )
         {
             Console.WriteLine(
                 "counter: {0} ", counterVariable++); // increment
             if (counterVariable > 10) // test
                 break;
         }
     }
 }


For without increase

/*
Learning C# 
by Jesse Liberty
Publisher: O"Reilly 
ISBN: 0596003765
*/
 using System;
 public class ForWithoutIncrTester
 {
     public static void Main()
     {
         for (int counter = 0; counter<10; ) // no increment
         {
             Console.WriteLine(
                 "counter: {0} ", counter);
             // do more work here
             counter++; // increment counter
         }
     }
 }


For without init value

/*
Learning C# 
by Jesse Liberty
Publisher: O"Reilly 
ISBN: 0596003765
*/
 using System;
 public class ForWithoutTester
 {
     public static void Main()
     {
         int counter = 0;
         // some work here
         counter = 3;
         // more work here
         for ( ; counter<10; counter++)
         {
             Console.WriteLine(
                 "counter: {0} ", counter);
         }
     }
 }


If inside a for

/*
Learning C# 
by Jesse Liberty
Publisher: O"Reilly 
ISBN: 0596003765
*/
 using System;
 public class ForIfTester
 {
     public static void Main()
     {
         for (int counter=0; counter<10; counter++)
         {
             Console.WriteLine(
                 "counter: {0} ", counter);
           // if condition is met, break out.
             if (counter == 5)                   {
                 Console.WriteLine("Breaking out of the loop");
                 break;
             }
         }
         Console.WriteLine("For loop ended");
     }
 }


Loop condition can be any bool expression

/*
C#: The Complete Reference 
by Herbert Schildt 
Publisher: Osborne/McGraw-Hill (March 8, 2002)
ISBN: 0072134852
*/
// Loop condition can be any bool expression. 
using System; 
 
public class forDemo {    
  public static void Main() {    
    int i, j; 
    bool done = false; 
 
    for(i=0, j=100; !done; i++, j--) { 
 
      if(i*i >= j) done = true; 
 
      Console.WriteLine("i, j: " + i + " " + j); 
    } 
 
  }    
}


loop with letter char as the control variable

 
using System;
using System.Collections.Generic;
using System.Text;
class Program {
    static void Main(string[] args) {
        string greetingText = "www.nfex.ru";
        for (int i = (int)"z"; i >= (int)"a"; i--) {
            char old1 = (char)i;
            char new1 = (char)(i + 1);
            greetingText = greetingText.Replace(old1, new1);
        }
        for (int i = (int)"Z"; i >= (int)"A"; i--) {
            char old1 = (char)i;
            char new1 = (char)(i + 1);
            greetingText = greetingText.Replace(old1, new1);
        }
        Console.WriteLine("Encoded:\n" + greetingText);
    }
}


Move more out of the for loop

/*
C#: The Complete Reference 
by Herbert Schildt 
Publisher: Osborne/McGraw-Hill (March 8, 2002)
ISBN: 0072134852
*/
// Move more out of the for loop. 
 
using System; 
 
public class Empty2 {   
  public static void Main() { 
    int i; 
 
    i = 0; // move initialization out of loop 
    for(; i < 10; ) { 
      Console.WriteLine("Pass #" + i); 
      i++; // increment loop control var 
    } 
  }   
}


Parts of the for can be empty

/*
C#: The Complete Reference 
by Herbert Schildt 
Publisher: Osborne/McGraw-Hill (March 8, 2002)
ISBN: 0072134852
*/
// Parts of the for can be empty. 
 
using System; 
 
public class Empty {   
  public static void Main() { 
    int i; 
 
    for(i = 0; i < 10; ) { 
      Console.WriteLine("Pass #" + i); 
      i++; // increment loop control var 
    } 
  }   
}


Simplest for

/*
 * C# Programmers Pocket Consultant
 * Author: Gregory S. MacBeth
 * Email: gmacbeth@comporium.net
 * Create Date: June 27, 2003
 * Last Modified Date:
 */
using System;
namespace Client.Chapter_4___Program_Control
{
  public class Fors
  {
    static void Main(string[] args)
    {
      for (int a = 0; a < 10; a++)
      {
        Console.WriteLine(a);
      }
    }
  }
}


The body of a loop can be empty

/*
C#: The Complete Reference 
by Herbert Schildt 
Publisher: Osborne/McGraw-Hill (March 8, 2002)
ISBN: 0072134852
*/
// The body of a loop can be empty. 
 
using System; 
 
public class Empty3 {   
  public static void Main() { 
    int i; 
    int sum = 0; 
 
    // sum the numbers through 5  
    for(i = 1; i <= 5; sum += i++) ; 
 
    Console.WriteLine("Sum is " + sum); 
  }   
}


The finished C# statement Help system that processes multiple requests

/*
C# A Beginner"s Guide
By Schildt
Publisher: Osborne McGraw-Hill
ISBN: 0072133295
*/
/*  
   Project 3-3  
  
   The finished C# statement Help system   
   that processes multiple requests.  
*/  
  
using System;  
  
public class Help3 {  
  public static void Main() {  
    char choice;  
  
    for(;;) {  
      do {  
        Console.WriteLine("Help on:");  
        Console.WriteLine("  1. if");  
        Console.WriteLine("  2. switch");  
        Console.WriteLine("  3. for");  
        Console.WriteLine("  4. while");  
        Console.WriteLine("  5. do-while");  
        Console.WriteLine("  6. break");  
        Console.WriteLine("  7. continue");  
        Console.WriteLine("  8. goto\n");  
        Console.Write("Choose one (q to quit): ");  
        do {  
          choice = (char) Console.Read();  
        } while(choice == "\n" | choice == "\r");      
      } while( choice < "1" | choice > "8" & choice != "q");  
  
      if(choice == "q") break;  
  
      Console.WriteLine("\n");  
   
      switch(choice) {  
        case "1":  
          Console.WriteLine("The if:\n");  
          Console.WriteLine("if(condition) statement;");  
          Console.WriteLine("else statement;");  
          break;  
        case "2":  
          Console.WriteLine("The switch:\n");  
          Console.WriteLine("switch(expression) {");  
          Console.WriteLine("  case constant:");  
          Console.WriteLine("    statement sequence");  
          Console.WriteLine("    break;");  
          Console.WriteLine("  // ...");  
          Console.WriteLine("}");  
          break;  
        case "3":  
          Console.WriteLine("The for:\n");  
          Console.Write("for(init; condition; iteration)");  
          Console.WriteLine(" statement;");  
          break;  
        case "4":  
          Console.WriteLine("The while:\n");  
          Console.WriteLine("while(condition) statement;");  
          break;  
        case "5":  
          Console.WriteLine("The do-while:\n");  
          Console.WriteLine("do {");  
          Console.WriteLine("  statement;");  
          Console.WriteLine("} while (condition);");  
          break;  
        case "6":  
          Console.WriteLine("The break:\n");  
          Console.WriteLine("break;");  
          break;  
        case "7":  
          Console.WriteLine("The continue:\n");  
          Console.WriteLine("continue;");  
          break;  
        case "8":  
          Console.WriteLine("The goto:\n");  
          Console.WriteLine("goto label;");  
          break;  
      }  
      Console.WriteLine();  
    }  
  }  
}


Update two parameters in for loop

 
using System;
   
class CommaOp1
{
    const int StartChar = 33;
    const int EndChar = 125;
    const int CharactersPerLine = 5;
   
    static public void Main()
    {
        for (int i = StartChar, j = 1; i <= EndChar; i++, j++)
        {
            Console.Write("{0}={1} ", i, (char)i);
            if (0 == (j % CharactersPerLine))
            {
                Console.WriteLine(""); 
            }
        }
    }
}


Use commas in a for statememt

/*
C#: The Complete Reference 
by Herbert Schildt 
Publisher: Osborne/McGraw-Hill (March 8, 2002)
ISBN: 0072134852
*/
// Use commas in a for statememt.    
 
using System; 
 
public class Comma {    
  public static void Main() {    
    int i, j; 
 
    for(i=0, j=10; i < j; i++, j--) 
      Console.WriteLine("i and j: " + i + " " + j); 
  } 
}


Use commas in a for statememt to find the largest and smallest factor of a number

/*
C#: The Complete Reference 
by Herbert Schildt 
Publisher: Osborne/McGraw-Hill (March 8, 2002)
ISBN: 0072134852
*/
/* 
   Use commas in a for statememt to find 
   the largest and smallest factor of a number. 
*/ 
 
using System; 
 
public class Comma1 {    
  public static void Main() {    
    int i, j; 
    int smallest, largest; 
    int num; 
 
    num = 100; 
    
    smallest = largest = 1; 
 
    for(i=2, j=num/2; (i <= num/2) & (j >= 2); i++, j--) { 
 
      if((smallest == 1) & ((num % i) == 0))  
        smallest = i; 
 
      if((largest == 1) & ((num % j) == 0))  
        largest = j; 
 
    } 
 
    Console.WriteLine("Largest factor: " + largest); 
    Console.WriteLine("Smallest factor: " + smallest); 
  } 
}


Use continue

/*
C#: The Complete Reference 
by Herbert Schildt 
Publisher: Osborne/McGraw-Hill (March 8, 2002)
ISBN: 0072134852
*/
// Use continue. 
 
using System; 
 
public class ContDemo {   
  public static void Main() { 
    // print even numbers between 0 and 100 
    for(int i = 0; i <= 100; i++) {  
      if((i%2) != 0) continue; // iterate 
      Console.WriteLine(i); 
    } 
  }   
}


Using break to exit a loop

/*
C#: The Complete Reference 
by Herbert Schildt 
Publisher: Osborne/McGraw-Hill (March 8, 2002)
ISBN: 0072134852
*/
// Using break to exit a loop.   
 
using System; 
 
public class BreakDemo {  
  public static void Main() {  
 
    // use break to exit this loop 
    for(int i=-10; i <= 10; i++) {  
      if(i > 0) break; // terminate loop when i is positive 
      Console.Write(i + " ");  
    }  
    Console.WriteLine("Done");  
  }  
}