Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/133.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
条件表达式中的模 我对编程很在行,我开始从Bjourne的书开始:编程原理和实践C++第二版。练习8第3章他要求:_C++_Modulo_Modulus - Fatal编程技术网

条件表达式中的模 我对编程很在行,我开始从Bjourne的书开始:编程原理和实践C++第二版。练习8第3章他要求:

条件表达式中的模 我对编程很在行,我开始从Bjourne的书开始:编程原理和实践C++第二版。练习8第3章他要求:,c++,modulo,modulus,C++,Modulo,Modulus,“编写一个程序来测试整数值,以确定它是奇数还是偶数……提示:请参阅§3.4中的余数(模)运算符。” 我可以这样做: int main() { int n; cout << "Enter an integer: "; cin >> n; if ( n%2 == 0) { cout << n << " is even."; } else { cout << n << " is odd."; } return 0

“编写一个程序来测试整数值,以确定它是奇数还是偶数……提示:请参阅§3.4中的余数(模)运算符。”

我可以这样做:

int main() {
int n;
cout << "Enter an integer: ";
cin >> n;
if ( n%2 == 0) {
    cout << n << " is even.";
}
else {
    cout << n << " is odd.";

}
return 0;
}


实际上在做什么?我以前没见过他在书中解释这些。还有,最后一段代码,当我键入偶数值时,它会给出“奇数”结果,当我键入奇数值时,它会给出“偶数”结果。发生了什么事?很抱歉写了这么长的文章,希望我能解释一下我需要什么…

他只是不写多个括号,根本不用

string res = "even"; //default value 
if (val%2) res = "odd"; //in case it is odd, value changes 

//output or threat in some way value. 
反而

string res = (val%2) ? "even" : "odd";

只需编写与您以前编写的相同的
if/else

他只是不写多个括号,根本不用

string res = "even"; //default value 
if (val%2) res = "odd"; //in case it is odd, value changes 

//output or threat in some way value. 
反而

string res = (val%2) ? "even" : "odd";
只需编写与您以前编写的相同的
if/else

是的

只是一个相当简洁的版本

if (val%2) {
  res = "odd";
}
请注意,
if(…)
实际上并不关心值是“真”还是“假”,它只检查零或非零。所以它相当于

if( val%2 != 0)
第二个命令行:
stringres=(val%2)?“偶数”:“奇数”
similary是一种简短的写作方式:

string res;
if(val%2 != 0){
    res = "even";
}
else{
    res = "odd";
}

这类命令的语法是
condition?值如果为真:值如果为假是的

只是一个相当简洁的版本

if (val%2) {
  res = "odd";
}
请注意,
if(…)
实际上并不关心值是“真”还是“假”,它只检查零或非零。所以它相当于

if( val%2 != 0)
第二个命令行:
stringres=(val%2)?“偶数”:“奇数”
similary是一种简短的写作方式:

string res;
if(val%2 != 0){
    res = "even";
}
else{
    res = "odd";
}

这类命令的语法是
condition?value\u if\u true:value\u if\u false

添加到前面的答案中,您必须注意布尔值(或“真”值)是0和1,(在布尔代数中0为假,1为真)

那么,什么时候

string res = (val % 2) ? "even" : "odd";
请注意,当您给出和奇数值时,它将始终返回数字1,该数字为“真”,反之为偶数


您必须将这些值转过来,程序才能运行。

除了前面的答案之外,您还必须注意布尔值(或“真”值)是0和1,(在布尔代数中,0为假,1为真)

那么,什么时候

string res = (val % 2) ? "even" : "odd";
请注意,当您给出和奇数值时,它将始终返回数字1,该数字为“真”,反之为偶数


你必须改变这些条件,程序才能运行。

我可以理解你以前没有见过三元运算符,但是你想知道
if
做了什么吗?也许我不能理解(val%2)如何作为if语句中的一个条件工作……好吧,你现在可以了。你已经找到答案了。
if(x)
的意思是
if((x)!=0)
,其中
x
是任何表达式,谢谢你,伙计!我可以理解您以前没有见过三元运算符,但您是否想知道
if
做了什么?也许我无法理解(val%2)如何作为if语句中的条件工作……好吧,现在您可以了。你已经找到答案了。
if(x)
的意思是
if((x)!=0)
,其中
x
是任何表达式,谢谢你,伙计<代码>条件?value\u if\u true:value\u if\u false
但如果在本例中为true,则为=0或仅仅是1的值,res的值不应该是“奇数”而不是“偶数”?
条件?value\u if\u true:value\u if\u false
但如果在本例中为true,则为=0或仅仅是1的值,res的值不应该是“奇数”而不是“偶数”?
string res=(val%2)?“偶数”:“奇数”但这给了我奇数的“偶数”和偶数的“奇数”…
stringres=(val%2)?“偶数”:“奇数”但这给了我奇数的“偶数”和偶数的“奇数”…通过改变u的意思:
stringres=(val%2)?“奇数”:“偶数”?是的,我的意思是,很明显,如果你改变它,通过看到你的问题,它会工作。但是请记住,val%2,即val=任何奇数,将导致“1”等于“true”,因此将执行true语句。感谢上帝!从昨天开始,我就一直在试图得到这段代码的答案,甚至在这里的评论中被问到,但都没有用。我的意思是,我发现仅仅交换这两个值就可以让程序工作,但是因为这本书是这样的,而且我是个书呆子,所以我对“修复”它持怀疑态度。。。太遗憾了,我现在不能代表你。又是泰,别担心!我只是在帮忙。:)有时人们似乎忘记了分析幕后真正发生的事情。祝你好运,编程愉快!你的意思是:
stringres=(val%2)?“奇数”:“偶数”?是的,我的意思是,很明显,如果你改变它,通过看到你的问题,它会工作。但是请记住,val%2,即val=任何奇数,将导致“1”等于“true”,因此将执行true语句。感谢上帝!从昨天开始,我就一直在试图得到这段代码的答案,甚至在这里的评论中被问到,但都没有用。我的意思是,我发现仅仅交换这两个值就可以让程序工作,但是因为这本书是这样的,而且我是个书呆子,所以我对“修复”它持怀疑态度。。。太遗憾了,我现在不能代表你。又是泰,别担心!我只是在帮忙。:)有时人们似乎忘记了分析幕后真正发生的事情。祝你好运,编程愉快!