2017-02-14 76 views
1

我目前在一个非常基本的C++类中,我们正在编写一个程序来检查输入是字符串还是其中的数字。目前,我有我的代码,一切似乎是为了然而,当我尝试测试我的错误:可能将语句拆分为多行?

Line should be less than or equal to 80 characters long.

错误位置显示这是问题:

if ((checknum == 1 && checkVector[0] == 1)|| checknum == 0 || checknum == strlength) { 

有有什么办法可以将它分解成多行来避免这个错误?它不会让我在没有所有空白空间的情况下运行它。

+0

仅供参考,'和'和'或'[也是C++关键字](http://stackoverflow.com/questions/2376448/the - 逻辑运算符的书面版本)并且更容易阅读。你也不太可能意外地抛出一个按比例的'|'或'&'。 –

回答

2

C++是空白不敏感的,新行是空格。所以你可以在你喜欢的任何令牌边界上划线。

例如:

if 
(
    (checknum == 1 && checkVector[ 
0] == 1)|| checknum 

        ==  0 || 
    checknum == strlength 
    ) { 
4

你可以把线附近打破了空白被允许:

if ((checknum == 1 && checkVector[0] == 1)|| 
    checknum == 0 || 
    checknum == strlength) { 

或者你可以设置变量:

int check1 = checknum == 1 && checkVector[0] == 1; 
int check2 = checknum == 0; 
int check3 = checknum == strlength; 
if (check1 || check2 || check3) { 

这是不完全相当于,因为||执行短路,并且不麻烦评估以后o如果前面的操作数是真的,则结果。但由于您的表达式中没有副作用或昂贵的计算,所以差异可以忽略不计。

1

当然,您可以根据需要添加尽可能多的空白。例如,这是允许的(但也许不是一个好主意):

if 
(
(
checknum 
== 
1 
&& 
checkVector 
[ 
0 
] 
== 
1 
) 
|| 
checknum 
== 
0 
|| 
checknum 
== 
strlength 
) 
{ 
+1

但现在很容易标记! – chris