Discovering C# with Console
In this tutorial, we will learn how to write a simple “Hello World!” program in C#. This will get you familiar with the basic syntax and requirements of a C# program.
The “Hello World!” program is often the first program we see when we dive into a new language. It simply prints Hello World! on the output screen
he purpose of this program is to get us familiar with the basic syntax and requirements of a programming language.
“Hello World”
using System;
namespace HelloWorld
{
class Hello {
static void Main(string[] args)
{
//Hello comment block
Console.WriteLine("Hello World!");
}
}
}
Note: This is the default setup when creating a new application within the request solution.
Now you may run the application, press F5 and the output should be: “Hello World!”
Understanding the “Hello World” program and how it works
- //Hello comment block
- // – represents the start of a comment section in C#. No worries comment sections/blocks are not executed by the C# compiler. (Consider when reading or using comments for better communicating with developers. To learn more about comments)
- namespace HelloWorld {…}
- is used to define the application namespace. So the example above namespace is called “HelloWorld”
- the perfect way to see namespace is like a container that will consist of methods, classes, and even other namespaces. (To learn more about namespace)
- class Hello {…}
- reflecting on the above example the class is created with the name – Hello in C#. C# is an object-oriented language and is mandatory for program execution.
- static void Main(string[], args){…}
- ‘Main()‘ this a method within the class of “Hello”. During the execution of a C# application, it will start with the ‘Main()‘
- Console.WriteLine(“Hello World”);
- to keep it short just remember in console application this will print the text to the user screen.
Tackling Hello World differently
// Hello World! program
namespace HelloWorld
{
class Hello {
static void Main(string[] args)
{
System.Console.WriteLine("Hello World!");
}
}
}
The above code is another way to execute the ‘Hello World’ program. Please take note with the two codes, the orignal code we began with and the code from above, the first difference is the missing “using System;”. Second difference to notice is the adding of the “System” before Console.WriteLine
Don’t worry more on this is another post.
Take away
- ‘Main()’ method must be inside the class definition
- Every C# program has to have a class definition
- Most importantly the execution begins within the ‘Main()’ method
So let’s keep it simple as a newbie this is an excellent introduction to C#. If anything within this post is hard to comprehend, don’t worry in the beginning I was the same way as well. As you progress with your read and research everything will begin to fall in place.
- Published in .NET & .NET Core, C#, Language, Programming Languages
Using forEach, forEnumerated, forIn within Swift
Swift provides us with multiple ways to loop through items in a collection, they are:
for pokemon in pokemons {
print(pokemon)
}
pokemons.forEach { (pokemon) in
print("Pokemon", pokemon)
}
for (index, element) in pokemons.enumerated() {
print("Number:", index, "Pokemon:", element)
}
Using for in
many programming languages the for in loo is called for-each. Standard loop statement in other languages uses this format:
for (i = 0; i < n; i++) {
///some fancy collecion to loop thur
}
Please note: Swift 3 no longer supports c-style for-loops
Now when using swift this approach is a little different, the rationale of this for-in syntax is it can be used to loop over ranges, iterators, strings, sequences, and collections with the same syntax.
let pokemons = ["Pikachu", "Charmander", "Squirtle", "Bulbasaur"]
for i in 0...< pokemons.count {
print("Pokemon \(i+1):" pokemons[i])
}
//output:
Pokemon 1: Pikachu
Pokemon 2: Charmander
Pokemon 3: Squirtle
Pokemon 4: Bulbasaur
Within Swift the use of object types like arrays, dictionaries, and sets are known as collection. Any collection can be iterated with a for-in loop. For example with dictionary:
let pokedex = ["Electric":"Pikachu","Water":"Squirtle","Fire":"Charmander","Grass":"Bulbasaur"]
for (type, pokemon) in pokedex {
print("The \(type)'s Pokemon is \(pokemon))
}
//output
The Electric's Pokemon is Pikachu
The Water's Pokemon is Squirtle
The Fire's Pokemon is Charmander
The Grass's Pokemon is Bulbasaur
In addition, Swift also provided two range operators lowerBound...upperBound as a shortcut for expressing a range of values.
Take note: lowebound is greater than upperBound the code will crash
for i in 0...5 {
print(i)
}
//output
0
1
2
3
4
5
for i in 0..<5 {
print(i)
}
//output
0
1
2
3
4
If interested in reversing the range while looping, we can easily achieve that using reversed
for i in (0...5).reversed() {
print(i)
}
//output
5
4
3
2
1
0
Stride
As I referenced before, C-Style for loops are no longer supported within Swift 3, so you’re probably asking how to acquire the ‘increment of the counter’ (i++). We accomplished this by using stride, and this helps us to move from one value to another using any incremental value, we can also specify whether the upperBound is inclusive or exclusive.
for i in stride(from 0, to: 10, by: 2) {
print(i)
}
//output
0
2
4
6
8
Using for each
pokemons.forEach {
print("Pokemon", pokemon)
}
//output
Pokemon Mewtwo
Pokemon Snorlax
Pokemon Eevee
Swift provides a dedicated method forEach for specific, unlike the above forIn this method can’t break the loop partway (at some point). It has to loop over each item in the sequence. It has to loop over each item in the sequence. This helps people reading your code to figure out your intent: that you want to act on all items, and won’t stop in the middle.
Please note:
breakstops execution in a loop immediately and continues directly after the loop.
continueonly exits the current iteration of the loop — it will jump back to the top of the loop and resumes up from there for next iteration
var oddNumbers = [Int]()
for numbers in (0...100) {
guard oddNumbers.count < 15 else {
break
}
guard numbers % 3 == 0 else {
continue
}
oddNumbers.append(numbers)
print(oddNumbers)
}
the same cannot be achieved in forEach with break and continue, so we need something like:
let oddNumbers = (0...100).filter {numbers -> Bool in
return numbers % 3 == 0
}.prefix(10)
print(oddNumbers)
Using for enumerated
This Swift loop iterates to each of the items by also telling the index of it. In case if we need to iterate the elements and need their index also, then forEnumerated is the perfect loop for us.
Nested for loops:
var pokedex = ["001", "002", "003"]
var pokemons = ["Bulbasaur", "Ivysaur", "Venusaur"]
for i in 0..< pokedex.count {
var string = "\(pokedex[i]) is "
for _ in 1...3 {
string += "\(pokemons[i])"
}
print(string)
}
//output
001 is Bulbasaur
002 is Ivysaur
003 is Venusaur
While:
// a while loop performs a set of statements until a condition becomes false
while condition {
//statements
}
var index = 0
while index < pokemons.count {
print(pokemon[index])
index += 1
}
//output
Bulbasaur
Ivysaur
Venusaur
Repeat:
//repeat while loop is similar to do while loops in other languages
repeat {
statements
} while condition
var index = 0
repeat {
print (pokemons[index])
index += 1
} while index < pokemons.count
//output
Bulbasaur
Ivysaur
Venusaur
It is similar to the above while loop but the major difference is that this loop evaluates the condition after running the statements. Either way, both while and repeat are best used in the loops where the numbers of steps are unknown.
- Published in blog, iOS, Programming Languages, Swift







