我无法理解用c ++评估某些东西意味着什么。我有这句话:“它的语法是:
条件? result1:result2
如果condition为true,则整个表达式的计算结果为result1,否则结果为result2。“我知道重点是什么,但在这种情况下,我无法直接得到单词”evaluate“的含义。这是否意味着喜欢继续,检查或什么? 谢谢!非常感谢
答案 0 :(得分:3)
每个表达式都有一个值。该值是通过评估表达式获得的。在一些强制性的英语扭曲中,我们有时会说"表达式评估为[某事]"。
表达式的计算通常在运行时发生,它是程序的运行时属性。 (例外是常量表达式。)
评估规则是递归定义的:
5
评估值" 5"。a + b
计算表达式a
和b
的值的数学和。 (因此,要评估表达式a + b
,首先必须评估表达式a
和b
。)a = b
计算为a
的新值(并且具有副作用,用于更改{{1}指定的左值的值} {到a
)的值。b
评估c ? a : b
或a
的转换,具体取决于b
的值,{{1}的类型的公共类型}和c
。请注意,并非所有表达式都会被评估。例如,在表达式a
中,子表达式b
和子表达式sizeof(+a)
都不会被评估。类似地,在条件表达式中,未评估未使用的表达式,并且在逻辑表达式中,不评估短路的死表达式。
"运行时未定义的行为"通常是表达评估的结果。
答案 1 :(得分:1)
它是 private int i;
private boolean b;
private String[] strings;
private int[] js;
public Transition(int i, boolean b, String[] strings, int[] js) {
this.i = i;
this.b = b;
this.strings = strings;
this.js = js;
}
public static State from;
public static Set<Condition> conditions;
public State to;
@Override
public boolean add(Transition e) {
// TODO Auto-generated method stub
return false;
}
@Override
public void add(int index, Transition element) {
// TODO Auto-generated method stub
}
@Override
public boolean addAll(Collection<? extends Transition> c) {
// TODO Auto-generated method stub
return false;
}
@Override
public boolean addAll(int index, Collection<? extends Transition> c) {
// TODO Auto-generated method stub
return false;
}
@Override
public void clear() {
// TODO Auto-generated method stub
}
@Override
public boolean contains(Object o) {
// TODO Auto-generated method stub
return false;
}
@Override
public boolean containsAll(Collection<?> c) {
// TODO Auto-generated method stub
return false;
}
@Override
public Transition get(int index) {
// TODO Auto-generated method stub
return null;
}
@Override
public int indexOf(Object o) {
// TODO Auto-generated method stub
return 0;
}
@Override
public boolean isEmpty() {
// TODO Auto-generated method stub
return false;
}
@Override
public Iterator<Transition> iterator() {
// TODO Auto-generated method stub
return null;
}
@Override
public int lastIndexOf(Object o) {
// TODO Auto-generated method stub
return 0;
}
@Override
public ListIterator<Transition> listIterator() {
// TODO Auto-generated method stub
return null;
}
@Override
public ListIterator<Transition> listIterator(int index) {
// TODO Auto-generated method stub
return null;
}
@Override
public boolean remove(Object o) {
// TODO Auto-generated method stub
return false;
}
@Override
public Transition remove(int index) {
// TODO Auto-generated method stub
return null;
}
@Override
public boolean removeAll(Collection<?> c) {
// TODO Auto-generated method stub
return false;
}
@Override
public boolean retainAll(Collection<?> c) {
// TODO Auto-generated method stub
return false;
}
@Override
public Transition set(int index, Transition element) {
// TODO Auto-generated method stub
return null;
}
@Override
public int size() {
// TODO Auto-generated method stub
return 0;
}
@Override
public List<Transition> subList(int fromIndex, int toIndex) {
// TODO Auto-generated method stub
return null;
}
@Override
public Object[] toArray() {
// TODO Auto-generated method stub
return null;
}
@Override
public <T> T[] toArray(T[] a) {
// TODO Auto-generated method stub
return null;
}
}
import java.util.*;
public class State
{
String state;
}
public class Condition {
String condition;
}
的简写语法。如果表达式(条件)的条件为真,则if else
将执行result1
。
它是if else的缩写形式,Like。
result2
实际例子。
if(condition){
result1;
}else{
result2;
}
说明:如果年龄大于或等于25,则结果1其他结果2。
int age = 25;
age >= 25 ? cout << "Result 1" : cout << "result 2";
表示如果从Evaluate
(表达式)result1得到真,并且得到错误的结果2。
答案 2 :(得分:1)
条件运算符计算表达式,如果该表达式的计算结果为true,则返回一个值;如果表达式的计算结果为false,则返回另一个值。它的语法是:
condition ? result1 : result2
如果condition为true,则整个表达式求值为result1,否则求值为result2。
7==5 ? 4 : 3 // evaluates to 3, since 7 is not equal to 5.
7==5+2 ? 4 : 3 // evaluates to 4, since 7 is equal to 5+2.
5>3 ? a : b // evaluates to the value of a, since 5 is greater than 3.
a>b ? a : b // evaluates to whichever is greater, a or b.
我无法直接得到“评价”这个词的含义 这个背景
这意味着表达式在评估后具有单个值。例如在这个
中7==5 ? 4 : 3 // evaluates to 3, since 7 is not equal to 5.
表达式的计算结果为3(即表达式的值为3) 在评估之前它可能是4或3但在评估之后表达式等于3
答案 3 :(得分:1)
首先,我们将采取完整的声明,因为您发布的声明不完整:
store = condition ? result1 : result2
如果条件为真,则整个表达式的计算结果为
result1
,否则为result2
这意味着如果在缩短的if语句中称为condition
的表达式为真,则result1
存储在等式左侧的变量中,这里是store
。
另一方面,如果condition
不成立,则result2
将存储在store
中。这就是表达的意思。
这种表达式是一个缩短的if-else语句。如果您要将此语句转换为完整的if-else语句,那么它将类似于:
if (condition == true)
store = result1;
else
store = result2;
以下是此类声明的示例:
假设我们有:
int num = 5;
int var = (num == 5) ? 6 : 10;
然后我们可以将此声明扩展为重写,含义相同,如下所示:
int num = 5;
int var;
if (num == 5)
var = 6;
else
var = 10;
在这两种情况下,生成的表达式都会将 6 存储在var
中。
简而言之, 评估 只是意味着评估基于if-else比较的结果表达式,并将结果值传递给左侧的变量。有时,左侧可能没有变量,在这种情况下,函数或表达式被评估为&#34;将运行。例如:
(num == 5) ? cout << "result1" : cout << "result2";
最后输出 result1 。
另外,例如:
(num == 5) ? cout << 5 + 23 : cout << 4 + 32;
将 评估 将第一个表达式(自num
从上一个示例初始化为5)到28,然后输出。
希望这有帮助。