If和 while的嵌套使用案例
时间: 2023-04-03 15:04:53 浏览: 78
可以使用嵌套的 if 和 while 语句来实现一些复杂的逻辑判断和循环控制。例如,可以使用 while 循环来读取用户输入的数字,然后使用 if 语句来判断这个数字是否为偶数,如果是偶数就输出“这是一个偶数”,否则输出“这是一个奇数”。代码示例:
```
#include <stdio.h>
int main() {
int num;
printf("请输入一个数字:");
scanf("%d", &num);
while (num != 0) {
if (num % 2 == 0) {
printf("这是一个偶数\n");
} else {
printf("这是一个奇数\n");
}
printf("请输入一个数字:");
scanf("%d", &num);
}
return 0;
}
```
这个程序会一直循环读取用户输入的数字,直到用户输入了 0,然后退出循环。在循环中,使用 if 语句来判断数字的奇偶性,并输出相应的信息。
相关问题
编写程序, 实现以下功能 • 检查是否有类型不一致的变量赋值, 是否有类型不一致的函数参数传递 • 对于已经编译通过, 没有语法错误的程序, 可以自动整理代码, 处理好 换行以及缩进. 关于缩进风格, 可见”缩进.pdf”, 要求可以在这四种风 格中任意切换. 可以处理if, if–else, switch, while, for, 函数等常见结构 以及他们的嵌套
为了实现上述功能,我们可以使用一种编程语言(如 Python)来编写程序。
首先,我们可以使用语言的类型检查机制来检查是否有类型不一致的变量赋值。例如,在 Python 中,我们可以使用 `isinstance()` 函数来检查一个变量是否是特定类型的实例,如下所示:
```python
if not isinstance(x, int):
print("x is not an integer")
```
我们还可以使用类型检查机制来检查函数参数是否是期望的类型。例如,我们可以定义一个函数,其中的参数必须是整数类型,如下所示:
```python
def my_function(x: int) -> None:
print(x)
```
这样,在调用 `my_function()` 时,如果传入的参数不是整数,程序会抛出一个类型错误异常。
其次,我们可以使用编译器或解释器提供的语法树接口来处理已经编译通过的代码,并根据缩进风格自动整理代码的换行和缩进。例如,在 Python 中,我们可以使用 `ast` 模块来解析代码并获取语法树。然后,我们可以遍历语法树,根据语法树中的节点类型来判断代码的结构(如
python# 案例:模拟银行ATM存款取款 # 1.模拟3张银行卡,1001,1002,1003,分别设置密码和余额(使用列表嵌套字典的方式); # 2.提示用户输入银行卡和密码,遍历每张卡的信息验证是否成功; # 3.如果用户输入正确---提示让用户选择取款.存款还是退出,并提示余额多少. 输入错误---重新输入卡 号密码; # 选择取款---提示输入取款额度,如果超过余额,提示余额不足;否则,在余额上减掉相应金额; # 选择存款---输入存款额度,余额加上相应额度,并提示余额多少; # 选择退出---重新登录; # 4.连续3次输入错误账号密码,提示银行卡已被锁定,程序结束。
这是一个模拟银行ATM存款取款的案例。首先,我们可以使用列表嵌套字典的方式来存储三张银行卡的信息,包括卡号、密码和余额。
```python
cards = [
{'卡号': 1001, '密码': '123456', '余额': 1000},
{'卡号': 1002, '密码': '654321', '余额': 2000},
{'卡号': 1003, '密码': 'abcdef', '余额': 3000}
]
```
然后,我们可以提示用户输入银行卡号和密码,并遍历每张卡的信息验证是否成功。
```python
def login():
for i in range(3):
card_num = int(input("请输入银行卡号:"))
password = input("请输入密码:")
for card in cards:
if card['卡号'] == card_num and card['密码'] == password:
return card
print("卡号或密码错误,请重新输入。")
print("连续输入错误账号密码已达3次,银行卡已被锁定。")
return None
current_card = login()
if current_card is None:
exit()
```
如果用户输入正确,我们会提示用户选择取款、存款还是退出,并显示当前余额。如果输入错误,需要重新输入卡号和密码。
```python
while True:
print("请选择操作:")
print("1. 取款")
print("2. 存款")
print("3. 退出")
choice = int(input("请输入操作编号:"))
if choice == 1: # 取款
amount = int(input("请输入取款额度:"))
if amount > current_card['余额']:
print("余额不足!")
else:
current_card['余额'] -= amount
print("取款成功!当前余额为:", current_card['余额'])
elif choice == 2: # 存款
amount = int(input("请输入存款额度:"))
current_card['余额'] += amount
print("存款成功!当前余额为:", current_card['余额'])
elif choice == 3: # 退出
current_card = login()
if current_card is None:
exit()
else:
print("输入错误,请重新选择。")
```
这样,我们就完成了模拟银行ATM存款取款的程序。注意,连续输入错误账号密码达到3次后,银行卡会被锁定并结束程序。