分别用if语句和switch语句实现以下计算
时间: 2023-05-03 08:02:42 浏览: 178
使用if语句实现分支判断需要逐个判断条件,根据判断结果执行相应的语句块。而使用switch语句可以将多个条件分支组合在一起,直接根据变量的值选择相应分支执行。在某些情况下,使用switch语句可以使代码更加简洁和易于理解。但在其他情况下,使用if语句也可以达到相同的效果。
相关问题
分别用if语句和switch语句实现以下计算,其中a、b、c的值从键盘输入。
用if语句实现:
key = input('请输入键盘输入的值:')
if key == 'a':
print('你输入的值为a')
elif key == 'b':
print('你输入的值为b')
elif key == 'c':
print('你输入的值为c')
else:
print('你输入的值不合法')
用switch语句实现(Python并没有内置的switch语句,可使用字典来模拟):
key = input('请输入键盘输入的值:')
switch_dict = {
'a': '你输入的值为a',
'b': '你输入的值为b',
'c': '你输入的值为c'
}
result = switch_dict.get(key, '你输入的值不合法')
print(result)
用if语句和switch语句查验身份证
身份证号码的校验码是通过对前17位进行加权求和并对11取余得到的,而身份证号码的第18位就是校验码。因此,我们可以通过对前17位进行加权求和并对11取余,然后将结果与身份证号码的第18位进行比较来判断身份证号码是否合法。
使用if语句和switch语句可以实现多分支结构的程序设计,可以根据不同的情况执行不同的代码块。在身份证号码的校验中,我们可以使用if语句或switch语句来判断校验码是否与身份证号码的第18位一致,从而判断身份证号码是否合法。
具体实现方法如下:
1. 首先,我们需要将身份证号码的前17位分别乘以对应的权重,并将结果相加,得到一个加权和。
2. 然后,将加权和除以11并取余,得到一个余数。
3. 最后,将余数与身份证号码的第18位进行比较,如果相等,则输出“身份证号passed”,否则输出“身份证号Fail”。
使用if语句实现的代码如下:
```
// 假设身份证号码的前17位存储在数组idNumber中,第18位存储在变量checkCode中
int sum = 0;
for (int i = 0; i < 17; i++) {
sum += (idNumber[i] - '0') * weight[i];
}
int remainder = sum % 11;
if (checkCode == 'X') {
checkCode = 10;
}
if (remainder == checkCode) {
cout << "身份证号passed" << endl;
} else {
cout << "身份证号Fail" << endl;
}
```
使用switch语句实现的代码如下:
```
// 假设身份证号码的前17位存储在数组idNumber中,第18位存储在变量checkCode中
int sum = 0;
for (int i = 0; i < 17; i++) {
sum += (idNumber[i] - '0') * weight[i];
}
int remainder = sum % 11;
if (checkCode == 'X') {
checkCode = 10;
}
switch (remainder) {
case 0:
if (checkCode == 1) {
cout << "身份证号Fail" << endl;
} else {
cout << "身份证号passed" << endl;
}
break;
case 1:
if (checkCode == 0) {
cout << "身份证号Fail" << endl;
} else {
cout << "身份证号passed" << endl;
}
break;
case 2:
if (checkCode == 10) {
cout << "身份证号Fail" << endl;
} else {
cout << "身份证号passed" << endl;
}
break;
case 3:
if (checkCode == 9) {
cout << "身份证号Fail" << endl;
} else {
cout << "身份证号passed" << endl;
}
break;
case 4:
if (checkCode == 8) {
cout << "身份证号Fail" << endl;
} else {
cout << "身份证号passed" << endl;
}
break;
case 5:
if (checkCode == 7) {
cout << "身份证号Fail" << endl;
} else {
cout << "身份证号passed" << endl;
}
break;
case 6:
if (checkCode == 6) {
cout << "身份证号Fail" << endl;
} else {
cout << "身份证号passed" << endl;
}
break;
case 7:
if (checkCode == 5) {
cout << "身份证号Fail" << endl;
} else {
cout << "身份证号passed" << endl;
}
break;
case 8:
if (checkCode == 4) {
cout << "身份证号Fail" << endl;
} else {
cout << "身份证号passed" << endl;
}
break;
case 9:
if (checkCode == 3) {
cout << "身份证号Fail" << endl;
} else {
cout << "身份证号passed" << endl;
}
break;
case 10:
if (checkCode == 2) {
cout << "身份证号Fail" << endl;
} else {
cout << "身份证号passed" << endl;
}
break;
}
```