Witam, czy w podanych przykładach poniżej, taki zapis składni if:
if(...) if(..) if(...) { ... } , lub if(... , ... , ...) { ... }
odpowiada łączeniu warunków za pomocą operatora logicznego and ( && ) , czy może jakaś inna reguła ?
#include <iostream>
int main()
{
int a=2;
for(int i=0; i<2; ++i) {
std::cout << "a = " << a << "\n";
if(1==1) if(2==2) if(a!=2) {
std::cout << "True 1==1, 2==2, " << a <<"!=2\n";
} else {
std::cout << "False 1==1, 2==2, " << a <<"!=2\n";
}
a++;
}
return 0;
}
#include <iostream>
int main()
{
int a=2;
for(int i=0; i<2; ++i) {
std::cout << "a = " << a << "\n";
if(1==1, 2==2, a!=2) {
std::cout << "True 1==1, 2==2, " << a <<"!=2\n";
} else {
std::cout << "False 1==1, 2==2, " << a <<"!=2\n";
}
a++;
}
return 0;
}
using System;
using System.IO;
class MainClass {
static void Main(string[] args) {
int a=2;
for(int i=0; i<2; ++i) {
Console.WriteLine("a = {0}", a);
if(1==1) if(2==2) if(a!=2) {
Console.WriteLine("True 1==1, 2==2, {0}!=2", a);
} else {
Console.WriteLine("False 1==1, 2==2, {0}!=2", a);
}
a++;
}
}
}
on-line: [ c++ ] [ c# ]
[ Edit ]
@tkz, dzięki za wskazówkę (odpowiedź) co do pierwszego:
if(...) if(..) if(...) { ... }, to jest zapis "drzewka" if-ów, w jednej linii
#include <iostream>
int main()
{
int a=1;
int b=2;
int c=2;
std::cout << "if-y w jednej linii\n";
std::cout << " a b c\n";
for(int i=0; i<3; ++i) {
if(a==1) if(b==2) if(c!=2)
std::cout << "True " << a << "==1, " << b << "==2, " << c <<"!=2\n";
else
std::cout << "False " << a << "==1, " << b << "==2, " << c <<"!=2\n";
else
std::cout << "False " << a << "==1, " << b << "==2, " << c <<"!=2\n";
else
std::cout << "False " << a << "==1, " << b << "==2, " << c <<"!=2\n";
a++, b++, c++;
}
a=1;
b=2;
c=2;
std::cout << "\n\ndrzewko if\n";
std::cout << " a b c\n";
for(int i=0; i<3; ++i) {
if(a==1)
if(b==2)
if(c!=2)
std::cout << "True " << a << "==1, " << b << "==2, " << c <<"!=2\n";
else
std::cout << "False " << a << "==1, " << b << "==2, " << c <<"!=2\n";
else
std::cout << "False " << a << "==1, " << b << "==2, " << c <<"!=2\n";
else
std::cout << "False " << a << "==1, " << b << "==2, " << c <<"!=2\n";
a++, b++, c++;
}
return 0;
}
on-line: [ c++ ]
Wygląda na to, że ostatni zapis po przecinku w warunku if jest sprawdzany,
czyli odpowiada łączeniu warunków za pomocą operatora logicznego or ( || ) ?
#include <iostream>
int main()
{
int a=1;
int b=2;
int c=2;
std::cout << " a b c\n";
for(int i=0; i<3; ++i) {
if(a==1, b==2, c!=2)
std::cout << "True " << a << "==1, " << b << "==2, " << c <<"!=2\n";
else
std::cout << "False " << a << "==1, " << b << "==2, " << c <<"!=2\n";
a++, b++, c++;
}
return 0;
}
on-line: [ c++ ]