Precondition
(Redirected from Preconditions)
Precondition
A precondition is a condition or set of conditions that must be met before a certain process or function can be executed. In computer science, preconditions are often used in the context of software development and programming to ensure that a function or method operates correctly. Preconditions are typically specified in the form of assertions or checks that validate the input parameters or the state of the system before the execution of a function.
Usage in Computer Science[edit | edit source]
In computer programming, preconditions are used to define the necessary conditions that must be true before a function or method is executed. If the preconditions are not met, the function may not behave as expected, and it may result in errors or undefined behavior. Preconditions are a fundamental concept in design by contract, a methodology introduced by Bertrand Meyer in the context of the Eiffel programming language.
Design by Contract[edit | edit source]
Design by contract (DbC) is a programming methodology that uses preconditions, postconditions, and invariants to define the contract between a function and its callers. Preconditions specify what must be true before a function is called, postconditions specify what must be true after the function has executed, and invariants specify conditions that must always be true during the execution of a program.
Assertions[edit | edit source]
In many programming languages, preconditions are implemented using assertions. An assertion is a statement that checks whether a condition is true. If the condition is false, the program typically raises an error or exception. Assertions are used to catch programming errors early in the development process by validating the assumptions made by the programmer.
Examples[edit | edit source]
Python[edit | edit source]
In Python, preconditions can be implemented using the `assert` statement:
def divide(a, b):
assert b != 0, "Denominator must not be zero"
return a / b
In this example, the precondition `b != 0` ensures that the denominator is not zero before performing the division.
Java[edit | edit source]
In Java, preconditions can be implemented using the `assert` keyword or by using libraries such as Google Guava:
public int divide(int a, int b) {
assert b != 0 : "Denominator must not be zero";
return a / b;
}
Using Google Guava:
import com.google.common.base.Preconditions;
public int divide(int a, int b) {
Preconditions.checkArgument(b != 0, "Denominator must not be zero");
return a / b;
}
Related Concepts[edit | edit source]
- Postcondition
- Invariant (computer science)
- Assertion (software development)
- Exception handling
- Defensive programming
See Also[edit | edit source]
Related Pages[edit | edit source]
Search WikiMD
Ad.Tired of being Overweight? Try W8MD's physician weight loss program.
Semaglutide (Ozempic / Wegovy and Tirzepatide (Mounjaro / Zepbound) available.
Advertise on WikiMD
WikiMD's Wellness Encyclopedia |
Let Food Be Thy Medicine Medicine Thy Food - Hippocrates |
Translate this page: - East Asian
中文,
日本,
한국어,
South Asian
हिन्दी,
தமிழ்,
తెలుగు,
Urdu,
ಕನ್ನಡ,
Southeast Asian
Indonesian,
Vietnamese,
Thai,
မြန်မာဘာသာ,
বাংলা
European
español,
Deutsch,
français,
Greek,
português do Brasil,
polski,
română,
русский,
Nederlands,
norsk,
svenska,
suomi,
Italian
Middle Eastern & African
عربى,
Turkish,
Persian,
Hebrew,
Afrikaans,
isiZulu,
Kiswahili,
Other
Bulgarian,
Hungarian,
Czech,
Swedish,
മലയാളം,
मराठी,
ਪੰਜਾਬੀ,
ગુજરાતી,
Portuguese,
Ukrainian
Medical Disclaimer: WikiMD is not a substitute for professional medical advice. The information on WikiMD is provided as an information resource only, may be incorrect, outdated or misleading, and is not to be used or relied on for any diagnostic or treatment purposes. Please consult your health care provider before making any healthcare decisions or for guidance about a specific medical condition. WikiMD expressly disclaims responsibility, and shall have no liability, for any damages, loss, injury, or liability whatsoever suffered as a result of your reliance on the information contained in this site. By visiting this site you agree to the foregoing terms and conditions, which may from time to time be changed or supplemented by WikiMD. If you do not agree to the foregoing terms and conditions, you should not enter or use this site. See full disclaimer.
Credits:Most images are courtesy of Wikimedia commons, and templates Wikipedia, licensed under CC BY SA or similar.
Contributors: Prab R. Tumpati, MD