1.与语句
(1)true情况
bool ret;
int dollar;
ret = dollar > 2000;
int car = 3;
printf("你的存款有:");
scanf("%d", &dollar);
if((true) && ((car = 2) > 1)){
printf("ojbk");
}
printf("汽车数量%d", car);
return 0;
(2)false情况
int main(void){
bool ret;
int dollar;
ret = dollar > 2000;
int car = 3;
printf("你的存款有:");
scanf("%d", &dollar);
if((false) && ((car = 2) > 1)){
printf("ojbk");
}
printf("汽车数量%d", car);
return 0;
bool ret;
int dollar;
ret = dollar > 2000;
int car = 3;
printf("你的存款有:");
scanf("%d", &dollar);
if((true) || ((car = 2) > 1)){
printf("ojbk");
}
printf("汽车数量%d", car);
return 0;
bool ret;
int dollar;
ret = dollar > 2000;
int car = 3;
printf("你的存款有:");
scanf("%d", &dollar);
if((false) || ((car = 2) > 1)){
printf("ojbk");
}
printf("汽车数量%d", car);
return 0;
int a;
int b = 200;
printf("请输入a值:");
scanf("%d",&a);
printf("请输入b值:");
scanf("%d",&b);
if((a > b) && (b > 200)){
printf("合格指标");
}
else{
printf("返工");
}
printf("b = %d",b);
return 0;
之前在b初始化了200,但是在后面有输入了b的值,所以之前的初始化便失去效果,可以删除掉。
打印的b值始终为输入的b值
b:初始化不符合假设条件;假设条件为300
int a;
int b = 200;
printf("请输入a值:");
scanf("%d",&a);
if((a > b) && ((b = 300) > 200)){
printf("合格指标");
}
else{
printf("返工\n");
}
printf("b = %d",b);
return 0;
b被初始化成200,没有再次输入b。
前项符合则b为300;前项不符合则b为200
b:初始化不符合假设条件;要求输入数值;假设条件300
int a;
int b = 200;
printf("请输入a值:");
scanf("%d",&a);
printf("请输入b值:");
scanf("%d",&b);
if((a > b) && ((b = 300) > 200)){
printf("合格指标");
}
else{
printf("返工\n");
}
printf("b = %d",b);
return 0;
因为b在初始化之后又有输入,所以这里的初始化又没有了作用,可删除掉此行代码。
前项符合则b为300;前项不符合则b为输入值
二 非语句
b:初始化不符合假设条件;假设条件为300
int main (void){
int a;
int b = 200;
printf("请输入a值:");
scanf("%d",&a);
if((a > b) || ((b = 300) > 200)){
printf("合格指标");
}
else{
printf("返工");
}
printf("b = %d",b);
return 0;
始终满足条件语句 前项错误则b为300;前项正确则b为200
b:初始化不符合假设条件;要求输入数值;假设条件为300
int a;
int b = 200;
printf("请输入a值:");
scanf("%d",&a);
printf("请输入b值:");
scanf("%d",&b);
if((a > b) || ((b = 300) > 200)){
printf("合格指标");
}
else{
printf("返工");
}
printf("b = %d",b);
return 0;
b的初始化没有作用可以删除掉
始终满足条件语句。 前项错误则b为300;前项正确则b为输入值
b初始化不符合假设条件;要求输入数值
int a;
int b = 200;
printf("请输入a值:");
scanf("%d",&a);
printf("请输入b值:");
scanf("%d",&b);
if((a > b) || (b > 200)){
printf("合格指标");
}
else{
printf("返工");
}
printf("b = %d",b);
return 0;
输出b的数值始终为输入b的数值,不管是否符合条件语句
总结:1.若b 既被初始化,又要被输入数值,则初始化的代码就失效了,就是没用的可以删除了。
2.条件语句中的(b = 300)已经保证条件中的一项满足了。若输入另一项后最终满足了条件语句,则输出的b为300;若输入另一项后没有满足条件语句,则输出的b值:输入值(先考虑)—>初始化值(再考虑)
三,其他逻辑语句
#include
int main(void){
char name[32];
int allowance;
int all;
int face;
int service;
int happy;
printf("请输入你的名字:");
scanf("%s", name);
printf("请输入你的颜值:");
scanf("%d", &face);
allowance = strcmp(name,"Charlie") > 0 ? 100 : 59;
all = allowance + face >75 ? 90 : 75;
if(all = 90){
printf("请进入商务舱\n");
}
else{
printf("请进入经济舱\n");
}
service = (allowance*3, face*=2,all = ++face);
printf("你的服务指数为%d\n",service);
happy = ++service;
printf("你的愉快指数为%d\n",happy);
return 0;
}
我们知道逗号运算符括号里只输出最后一个逗号后的内容。如service = (allowance3, face=2,all = ++face); 最终的service = all ,all = ++face。但是只输出不代表只运算,里面用逗号隔开的内容都会被运算,只是输出最后一个。