#include <iostream> // Includes Input&Output Stream In C++
#include <cmath> // Includes C Math Algorithm In C++
#include <string> // Includes String Algorithm In C++
using namespace std; // Namespace Library Is Being Used In C++
int Got;
int main() {
string Country;
int myAge;
cout << "Yasinizi asagiya yaziniz! \n";
cin >> myAge;
cout << "Belirli bir ulke seciniz! ( ornegin : Turkey, TR, Tr, T, turkey, tr, t ) \n Turkey \n USA \n Canada \n ";
cin >> Country;
if ( Country == "Turkey", "TR", "Tr", "T", "turkey", "tr", "t") {
int votingAge = 18;
int myA = (myAge >= votingAge);
if (myA == 1) {
cout << "Ulkenizin secimlerinde oy verebilecek yastasiniz!";
}
else { cout << "Ulkenizin secimlerinde oy verebilecek yasa gelmek icin " << votingAge - myAge << " kadar yil beklemelisiniz!"; }
}
else if (Country == "USA", "US", "Us", "U", "usa", "us", "u") {
int votingAge = 21;
int myA = (myAge >= votingAge);
if (myA == 1) {
cout << "Ulkenizin secimlerinde oy verebilecek yastasiniz!";
} else { cout << "Ulkenizin secimlerinde oy verebilecek yasa gelmek icin " << votingAge - myAge << " kadar yil beklemelisiniz!"; }
} else if (Country == "CANADA", "CA", "Ca", "canada", "ca", "c" ) {
int votingAge = 18;
int myA = (myAge >= votingAge);
if (myA == 1) {
cout << "Ulkenizin secimlerinde oy verebilecek yastasiniz!";
cout << "Enter tusuna basarak bu pencereyi kapatabilirsiniz.";
cin >> Got;
}
else { cout << "Ulkenizin secimlerinde oy verebilecek yasa gelmek icin " << votingAge - myAge << " kadar yil beklemelisiniz!";
cout << "Enter tusuna basarak bu pencereyi kapatabilirsiniz.";
cin >> Got;
}
}
}
std::string bt;
std::cin >> bt;
if (bt == "Turkey", "TR", "Tr", "T", "turkey", "tr", "t") {
std::cout << "Turkiye" << std::endl;
}
else if (bt == "USA", "usa", "us", "america") {
std::cout << "America" << std::endl;
}
"t"
her zaman doğru çıkar. if
içerisine bir pointer yerleştirdiğinde (c arrayleri ve tırnak içinde yazdığın yazılar da birer pointerdır), eğer pointerın bir adresi yoksa, point ettiği adres sıfırdır (NULL
yada nullptr
).if(0)
yanlıştır, ve 0 dışındaki tüm durumlar doğrudur. Dolayısıyla oraya string verdiğinde (const char[]
) if(true)
olarak gelmiş oluyor ve ne olursa olsun, her daim doğru dönüyor. Ayrı ayrı logic operatörleriyle yazman lazım. if (bt == "Turkey" || bt == "TR" || bt == "Tr" || bt == "T" || bt == "turkey" || bt == "tr" || bt == "t") {
std::cout << "Turkiye" << std::endl;
} else if (bt == "USA" || bt == "usa" || bt == "us" || bt == "america") {
std::cout << "America" << std::endl;
}
||
ve &&
yerine or
ve and
kullanabilirsin.Selam, çözüm öneriniz için teşekkür ederim ancak debug ettiğimde dediğiniz gibi bir hata ile karşılaşmadım, seçim yaşlarına göre belirtilen ülke geliyor yani, us belirtti iseniz seçim yaşı 21 oluyor bende, tr belirttiyseniz 18. Yorumlamanız için teşekkür ederim.Kod yanlış. TR ise de TR gelecek, USA ise de TR gelecek. C++'ta böyle bir kullanım yok.Eki Görüntüle 2284961
Kodda bu;
C++:std::string bt; std::cin >> bt; if (bt == "Turkey", "TR", "Tr", "T", "turkey", "tr", "t") { std::cout << "Turkiye" << std::endl; } else if (bt == "USA", "usa", "us", "america") { std::cout << "America" << std::endl; }
Bunun derlerken hata vermemesinin sebebi virgül. Soldan sağa hepsini execute edip, execute ettiği son elemanın doğru olup olmamasına bağlı olarak doğru diyecek."t"
her zaman doğru çıkar.if
içerisine bir pointer yerleştirdiğinde (c arrayleri ve tırnak içinde yazdığın yazılar da birer pointerdır), eğer pointerın bir adresi yoksa, point ettiği adres sıfırdır (NULL
yadanullptr
).
if(0)
yanlıştır, ve 0 dışındaki tüm durumlar doğrudur. Dolayısıyla oraya string verdiğinde (const char[]
)if(true)
olarak gelmiş oluyor ve ne olursa olsun, her daim doğru dönüyor. Ayrı ayrı logic operatörleriyle yazman lazım.
Şöyle yani;
C++:if (bt == "Turkey" || bt == "TR" || bt == "Tr" || bt == "T" || bt == "turkey" || bt == "tr" || bt == "t") { std::cout << "Turkiye" << std::endl; } else if (bt == "USA" || bt == "usa" || bt == "us" || bt == "america") { std::cout << "America" << std::endl; }
Ek olarak C++'ta||
ve&&
yerineor
veand
kullanabilirsin.
Yorumlamanız için teşekkür ederim.Programlamaya ilk defa başlıyorsan, bu kod fena değil. Ama programlama ve algoritma tecrüben varsa direkt çöp.
2. gün olduğunu ve yeni başladığını farzediyorum, o sebeple fena sayılmaz.
Şimdi bu kodu geliştirirken şunu düşünmen beklenir; "Ülkeleri if else ile ayırıyorum ama her durumda benzer işlevleri yapıyorum. Yüzlerce ülke için bu kodu tekrar mı etmem gerek?". Eğer bu tarz bir soru düşündüysen, güzel bir ilerleme var. 3. Gün fonksiyonlardan devam. Sorunun cevabı orada.
Gereksiz kullanım olmuş olabilir mi emin değilim, yorumlamanız için teşekkür ederim.C++'a çok hakim değilim yalnız if ( Country == "Turkey", "TR", "Tr", "T", "turkey", "tr", "t") şu ifade hatalı gibi. Normalde if ( Country == "Turkey" || Country == "TR" ... şeklinde olması gerekir.
Ayrıca;
int myA = (myAge >= votingAge);
if (myA == 1) {
gereksiz bir kullanım olmuş. Doğrudan if (myAge >= votingAge) şeklinde kullanılabilir. Hem int myA = (myAge >= votingAge) ifadesi -1 de döndürebilir.
Test girdilerini ve sonuçlarını ekran görüntüsü olarak paylaş burada. Mümkün değil. C++'ta böyle bir kıyas yöntemi yok. , operatörü liste içerisindekilerden birine eşit mi diye kontrol etmeyi sağlamaz. Ne MSVC'de böyle, ne GCC ile, ne CLang ile.Selam, çözüm öneriniz için teşekkür ederim ancak debug ettiğimde dediğiniz gibi bir hata ile karşılaşmadım, seçim yaşlarına göre belirtilen ülke geliyor yani, us belirtti iseniz seçim yaşı 21 oluyor bende, tr belirttiyseniz 18. Yorumlamanız için teşekkür ederim.
int myA = (myAge >= votingAge);
if (myA == 1) {
if(myAge >= votingAge)
demiyorsun da, bu kadar uzatıyorsun ekstra variable oluşturup falan. Yeni değil kendisi. C++'ta 2. günü sözde ama kendi iddialarınca kanıtı olan Lua ve C++ projeleri, sanal makineler yazıyordu sıfırdan, bkz;2. gün olduğunu ve yeni başladığını farzediyorum, o sebeple fena sayılmaz.
Programlama bilen herkes, C++'ın, GUI için ve konsol için farklı syntax ve kurallara sahip olmadığını bilir. Yine sıvıyorsun. Yapma, lütfen yapma. Hatanı bir kere de kabul et. GUI yazarken if statement 'a' işini yapıyorda, konsol yazarken mi 'b' işini yapıyor? Yapma Allah aşkına.C++ konsol halini öğreniyorum
Teşekkür ederimGün 1'de bıraktın diye biliyordum.
İf else yerine switch-case daha uygun olabilir bu senaryoda.
Sana bir şey diyim mi?Teşekkür ederim