Izjava if else
Stavek if-else je odlično orodje za razvijalca, ki poskuša vrniti izhod na podlagi pogoja. V R je sintaksa:
if (condition) {Expr1} else {Expr2}
Preveriti želimo, ali je spremenljivka, shranjena kot "količina", večja od 20. Če je količina večja od 20, bo koda natisnila "Veliko ste prodali!" sicer premalo za danes.
# Create vector quantityquantity <- 25# Set the is-else statementif (quantity > 20) {print('You sold a lot!')} else {print('Not enough for today')}
Izhod:
## [1] "You sold a lot!"
Opomba : Poskrbite, da boste pravilno napisali vdolbine. Koda z več pogoji lahko postane neberljiva, če vdolbine niso v pravilnem položaju.
Izjava else if
Nadzorno raven lahko dodatno prilagodimo z izjavo else if. Z elif lahko dodate toliko pogojev, kot želimo. Sintaksa je:
if (condition1) {expr1} else if (condition2) {expr2} else if (condition3) {expr3} else {expr4}
Zanima nas, ali smo prodali količine med 20 in 30. Če je, potem pint Povprečni dan. Če je količina> 30, natisnemo Kakšen čudovit dan!, Sicer za danes premalo.
Količino lahko poskusite spremeniti.
# Create vector quantiyquantity <- 10# Create multiple condition statementif (quantity <20) {print('Not enough for today')} else if (quantity > 20 &quantity <= 30) {print('Average day')} else {print('What a great day!')}
Izhod:
## [1] "Not enough for today"
2. primer:
DDV ima različno stopnjo glede na kupljeni izdelek. Predstavljajte si, da imamo tri različne izdelke z različnim DDV:
Kategorije | Izdelki | DDV |
---|---|---|
A | Knjiga, revija, časopis itd ... | 8% |
B | Zelenjava, meso, pijača itd ... | 10% |
C | Majica, kavbojke, hlače itd ... | 20% |
Lahko napišemo verigo, da uporabimo pravilno stopnjo DDV za izdelek, ki ga je kupila stranka.
category <- 'A'price <- 10if (category =='A'){cat('A vat rate of 8% is applied.','The total price is',price *1.08)} else if (category =='B'){cat('A vat rate of 10% is applied.','The total price is',price *1.10)} else {cat('A vat rate of 20% is applied.','The total price is',price *1.20)}
Izhod:
# A vat rate of 8% is applied. The total price is 10.8