luento16esimerkkeja
 All Classes Files Functions Variables Properties
MuuttujienNakyvyys.cs
Go to the documentation of this file.
1 using System;
2 
3 /// @author Vesa Lappalainen
4 /// @version 26.10.2012
5 /// <summary>
6 /// Tutkitaan muuttujinen näkyvyyttä
7 /// </summary>
8 public class MuuttujienNakyvyys
9 {
10  /// <summary>
11  /// Missä pääohjelman muuttujat näkyvät
12  /// </summary>
13  /// <param name="args">ei käytössä</param>
14  public static void Main(string[] args)
15  {
16  int luku = 9; // Näkyy vain pääohjelmassa
17  double d = 5.5; // Näkyy vain pääohjelmassa
18  int[] luvut = { 1, 2, 3 }; // Näkyy vain pääohjelmassa, mutta viitteen kautta aliohjelmakin voi muuttaa
19  Muuta(luvut, 2, luku);
20  { // apulohko, jossa omia muuttujia
21  int uusi = 3; // muuttuja joka näkyy vain tässä lohkossa
22  Console.WriteLine(uusi);
23  } // nyt uusi-muuttuja lakkaa olemasta
24  // Nyt muuttujaa uusi ei ole olemassakaan
25 
26  // Täytetään taulukkoa
27  int edellinen = 0;
28  for (int i = 0; i < luvut.Length; i++)
29  {
30  int nyt = luvut[i]; // on olemassa silmukan sisällä
31  int iso = 3 * nyt; // on olemassa silmukan sisällä
32  luvut[i] += iso;
33  edellinen = nyt + luku; // silmukan ulkopuolella määritelty muuttuja
34  }
35  }
36 
37 
38  /// <summary>
39  /// Laitetaan taulukon luvut paikkaan uusi luku
40  /// </summary>
41  /// <param name="luvut">taulukko jota muutetaan, aliohjelman oma viite, mutta viitteen kautta voi muuttaa myös kutsuvan ohjelman taulukkoa</param>
42  /// <param name="paikka">paikka jota muutetaan, näkyy vain aliohjelmassa, muuttaminen ei vaikuta kutsuvaan ohjelmaan</param>
43  /// <param name="luku">uusi arvo, näkyy vain aliohjelmassa, sama nimi ei haittaa, muuttaminen ei vaikuta kutsuvaan ohjelmaan</param>
44  public static void Muuta(int[] luvut, int paikka, int luku)
45  {
46  luvut[paikka] = luku; // viitteen ansiosta pääohjelman taulukko muuttui
47  paikka--; // ei vaikuta pääohjelmaan
48  int uusiarvo; // aliohjelman lokaali muuttuja
49  uusiarvo = luku + 3;
50  luvut[paikka] = uusiarvo; // muuttaa pääohjelman taulukkoa
51  luku = 12; // ei vaikuta pääohjelmaan
52  }
53 }