2024-06-21
This commit is contained in:
126
Writerside/topics/Condition.md
Normal file
126
Writerside/topics/Condition.md
Normal file
@@ -0,0 +1,126 @@
|
||||
# 조건문
|
||||
|
||||
PERL에는 boolean 형식의 데이터가 없으며, 숫자 0, 문자열 '0', 빈 문자열, 빈 리스트, 값이 할당되지 않은(undefined) 변수의 경우에는 거짓으로, 그 외의 경우에는 참으로 판단됩니다.
|
||||
|
||||
## if
|
||||
|
||||
실행문 뒤에 if를 쓸 수도 있습니다.
|
||||
|
||||
```perl
|
||||
$a = 1;
|
||||
print "Hello\n" if ($a == 1);
|
||||
```
|
||||
|
||||
## if … elsif … else …
|
||||
|
||||
실행문이 한 줄인 경우라도 중괄호가 반드시 필요합니다.
|
||||
|
||||
```perl
|
||||
if ($condition){
|
||||
print "true\n";
|
||||
} else {
|
||||
print "false\n";
|
||||
}
|
||||
```
|
||||
|
||||
## unless
|
||||
|
||||
```perl
|
||||
$a = 1;
|
||||
print "Hello\n" unless ($a == 1);
|
||||
```
|
||||
|
||||
## unless … elsif … else …
|
||||
|
||||
unless는 조건식이 거짓일 때 처리됩니다.
|
||||
|
||||
```perl
|
||||
$var = -10;
|
||||
|
||||
unless ($var){
|
||||
print "false\n";
|
||||
} elsif ($var>=0) {
|
||||
print "positive\n";
|
||||
} else {
|
||||
print "negative\n";
|
||||
}
|
||||
# negative
|
||||
```
|
||||
|
||||
## 조건 연산자
|
||||
|
||||
```perl
|
||||
$var = 10;
|
||||
$value = ($var>=0) ? "Positive" : "Negative";
|
||||
print "$value\n";
|
||||
```
|
||||
|
||||
## given … when … default …
|
||||
|
||||
```perl
|
||||
use v5.10; # given문을 사용하려면 이렇게 선언해야 합니다.
|
||||
no warnings 'experimental';
|
||||
|
||||
$var = 2;
|
||||
given ($var){
|
||||
when (1) {
|
||||
print "one\n";
|
||||
}
|
||||
when (2) {
|
||||
print "two\n";
|
||||
}
|
||||
default {
|
||||
print "many\n";
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
```perl
|
||||
use v5.12;
|
||||
|
||||
my $var = 2;
|
||||
my $value;
|
||||
given ($var){
|
||||
$value = 'One' when (1);
|
||||
$value = 'Two' when (2);
|
||||
default {
|
||||
$value = 'Many';
|
||||
}
|
||||
}
|
||||
print "$value\n";
|
||||
```
|
||||
|
||||
```perl
|
||||
use v5.12;
|
||||
|
||||
my $var = 'a';
|
||||
my $value;
|
||||
given ($var){
|
||||
$value = 'Number' when /\d/; # when절에 정규표현식을 사용할 수도 있습니다.
|
||||
$value = 'Character' when /[a-zA-Z]/;
|
||||
default {
|
||||
$value = 'Unknown';
|
||||
}
|
||||
}
|
||||
print "$value\n";
|
||||
```
|
||||
|
||||
## switch .. case .. else ..
|
||||
|
||||
switch 구문은 Switch 모듈의 일부이므로 이를 사용하려면 `use Switch;`를 선언해야합니다.
|
||||
|
||||
```perl
|
||||
use Switch;
|
||||
|
||||
switch($var) {
|
||||
case 1 {
|
||||
print "One";
|
||||
}
|
||||
case "a" {
|
||||
print "string a";
|
||||
}
|
||||
else {
|
||||
print "something else.";
|
||||
}
|
||||
}
|
||||
```
|
||||
Reference in New Issue
Block a user