Operatoren
BEGIN {
print 7 + 2, 7 - 2, 7 * 2, 7 / 2, 7 % 3, 2 ^ 10, 2 ** 3
a = 5; a += 3; a *= 2; print a
i = 1; i++; ++i; print i
print (3 < 5), (3 == 3), (3 != 3), ("a" < "b")
print (1 && 0), (1 || 0), !1
print "Text" " " "wird" " " "verkettet"
s = "abc"; print s s
print 1 " " 2
print 10 / 3
printf "%.2f\n", 10 / 3
print int(3.99), int(-3.99)
print sqrt(16), exp(0), log(1), sin(0), cos(0)
print length("hallo")
print 1e3, 0x10, 010
}9 5 14 3.5 1 1024 8 16 3 1 1 0 1 0 1 0 Text wird verkettet abcabc 1 2 3.33333 3.33 3 -3 4 1 0 0 1 5 1000 16 8
Bedingungen
BEGIN {
n = 15
if (n % 15 == 0) print "FizzBuzz"
else if (n % 3 == 0) print "Fizz"
else if (n % 5 == 0) print "Buzz"
else print n
status = (n > 10) ? "groß" : "klein"
print status
s = "apfel"
if (s ~ /^a/) print "beginnt mit a"
if (s !~ /z/) print "kein z"
if (!(s in meine_liste)) print "nicht im Array"
if (length(leer) == 0) print "unbelegte Variable ist leer"
print (leer == 0), (leer == "")
}FizzBuzz groß beginnt mit a kein z nicht im Array unbelegte Variable ist leer 1 1
Schleifen
BEGIN {
for (i = 1; i <= 5; i++) printf "%d ", i
print ""
j = 0
while (j < 3) { printf "w%d ", j; j++ }
print ""
k = 10
do { printf "k=%d ", k; k++ } while (k < 12)
print ""
for (i = 1; i <= 10; i++) {
if (i % 2 == 0) continue
if (i > 7) break
printf "%d ", i
}
print ""
# verschachtelt
for (z = 1; z <= 3; z++) {
for (s = 1; s <= 3; s++) printf "%3d", z * s
print ""
}
}1 2 3 4 5 w0 w1 w2 k=10 k=11 1 3 5 7 1 2 3 2 4 6 3 6 9
Funktionen
function quadrat(x) { return x * x }
function maximum(a, b) { return a > b ? a : b }
function fak(n) { return n <= 1 ? 1 : n * fak(n - 1) }
function wiederhole(text, n, erg, i) { # lokale Variablen durch zusätzliche Parameter
for (i = 0; i < n; i++) erg = erg text
return erg
}
BEGIN {
print quadrat(7), maximum(3, 9), fak(10)
print wiederhole("ab", 3)
print fak(20)
}49 9 3628800 ababab 2432902008176640000
Merke
- Operatoren wie in C; Verkettung von Strings durch Hintereinanderschreiben
if/else,?:,for,while,dofür den Ablauf- Reguläre Ausdrücke mit
~und!~ - Funktionen mit
function; lokale Variablen als Extra-Parameter
Aufgabe
Schreibe FizzBuzz für 1 bis 20.