char x;
bool tf;
void IsNumber(char x)
{
switch (x)
{
case '1':
case '2':
case '3':
case '4':
case '5':
case '6':
case '7':
case '8':
case '9':
case '0':
bool tf(true);
break;
default:
bool tf(false);
break;
}
}
int main(int argc, const char * argv[])
{
using namespace std;
cout << "Test if a character is a number: " << endl;
char x;
cin >> x;
IsNumber((char) x);
if (bool tf = true)
cout << "True" << endl;
if (bool tf = false)
cout << "False" << endl;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我在默认情况下收到错误:说我无法重新定义变量.而且,它在底部说,变量tf不是变量.我是C++的新手,我只知道python可以帮助我吗?
新代码给我一个错误:
#include <iostream>
bool tf;
tf = true;
bool IsNumber(char x)
{
switch (x)
{
case '1':
Run Code Online (Sandbox Code Playgroud)
您试图在同一范围内声明两个具有相同名称的变量.该switch语句本身定义了一个范围,但各case条款不.如果你想在一个case子句中使用一个范围,那么你必须自己提供一个:
case '0':
{
bool tf(true);
break;
}
Run Code Online (Sandbox Code Playgroud)
虽然目前还不清楚它有什么用处; 你要声明一个局部变量然后忽略它.也许你打算设置全局变量:
case '0':
tf = true;
break;
Run Code Online (Sandbox Code Playgroud)
所以你可以检查一下
if (tf) // NOT if (bool tf = true) - that also declares a new local variable
Run Code Online (Sandbox Code Playgroud)
或者,不那么怪,也许你想要返回一个值:
bool IsNumber(char x) {
switch (x) {
case '0':
// and so on
return true;
default:
return false;
}
}
Run Code Online (Sandbox Code Playgroud)
并测试它
if (IsNumber(x)) {
cout << "True" << endl;
} else {
cout << "False" << endl;
}
Run Code Online (Sandbox Code Playgroud)
或者,如果冗长不是你的事
cout << (IsNumber(x) ? "True" : "False") << endl;
Run Code Online (Sandbox Code Playgroud)
甚至
cout << boolalpha << IsNumber(x) << endl;
Run Code Online (Sandbox Code Playgroud)
您可能需要花一些时间阅读介绍性书籍,直到您对范围,声明和定义等基础知识感到满意为止.以下是一些建议.
| 归档时间: |
|
| 查看次数: |
964 次 |
| 最近记录: |