Skip to content

Instantly share code, notes, and snippets.

@stevecooperorg
Created December 2, 2014 14:12
Show Gist options
  • Save stevecooperorg/5af125c9bc62f374cc40 to your computer and use it in GitHub Desktop.
Save stevecooperorg/5af125c9bc62f374cc40 to your computer and use it in GitHub Desktop.
Lesson 2 - functions and enums
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace HelloPerson
{
enum Language
{
English,
German,
French,
Dutch
}
class Program
{
static void Main(string[] args)
{
Console.WriteLine("What is your name?");
string name;
name = Console.ReadLine();
Console.WriteLine("Your name has " + CharacterCount(name) + " letters");
string greeting;
string article;
switch(UserLanguage(name))
{
case Language.German:
greeting = "Guten tag, " + name;
break;
case Language.French:
greeting = "Bonjour, " + name + "!";
break;
case Language.English:
greeting = "Hello, " + name;
break;
default:
throw new Exception("I don't understand " + UserLanguage(name));
}
// "Steve"
// "Gimme an S! Gimme a T! Gimme an E! Gimme an V! Gimme an E! ... Iiiit's Steve!"
foreach (char c in name)
{
char upperCaseLetter = Char.ToUpper(c);
article = TheArticleFor(c);
Console.WriteLine("Gimme " + article + " " + upperCaseLetter + "!");
}
Console.WriteLine(greeting);
Console.ReadLine();
}
private static int CharacterCount(string name)
{
int count = 0;
foreach (char c in name)
{
count = count + 1;
}
return count;
}
private static Language UserLanguage (string name)
{
switch (name)
{
case "Greta":
case "Hans":
return Language.German;
case "Pierre":
return Language.French;
case "Jens":
return Language.Dutch;
default:
return Language.English;
}
}
private static string TheArticleFor(char anEnglishLetter)
{
string article;
char lowerCaseLetter = Char.ToLower(anEnglishLetter);
switch (lowerCaseLetter)
{
case 'a':
case 'e':
case 'i':
case 'o':
case 'u':
case 's':
article = "an";
break;
default:
article = "a";
break;
}
return article;
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment