// 第三章判断和循环
/*
3.1 比较数据值
3.1.1 if语句
//A-Z 是65-90
//a-z 97-122
//有一个将小写字母转换为大写的ISO/ANSI C++库函数 toupper()
位于标准文件<ctype>中
3.1.3 扩展的if语句
3.1.4 嵌套的if-else语句
3.1.5 逻辑运算符和表达式
&& 逻辑与
|| 逻辑或
! 逻辑非
3.1.6 条件运算符
3.1.7 switch语句
3.1.8 无条件转移
3.2 重复执行语句块
3.2.1 循环的概念
3.2.2 for循环的变体
1. 使用continue
2. 浮点循环计数器
3.2.3 while循环
3.2.4 do - while循环
3.2.5 嵌套的循环
3.3 C++/CLI编程
*/
//练习题一
//#include <iostream>
//using namespace std;
//int main()
//{
//while循环
/*int value=0, sum=0, i=0;
bool tmp=true;
while(tmp==true)
{
cout<<"请输入你要计算的数值(值为0时结束):";
cin>>value;
if(value == 0){
tmp=false;
}
sum +=value;
i++;
}
cout<<"一共输入了"<<i<<"次,总数为:"<<sum<<endl;*/
/*int value=0, sum=0, i=0;
bool tmp=true;
for(;;){
cout<<"请输入你要计算的数值(值为0时结束):";
cin>>value;
if(value == 0){
break;
}
sum +=value;
i++;
}
cout<<"一共输入了"<<i<<"次,总数为:"<<sum<<endl;*/
/*int value=0, sum=0, i=0;
bool tmp=true;
do{
cout<<"请输入你要计算的数值(值为0时结束):";
cin>>value;
if(value == 0){
tmp=false;
}else{
sum +=value;
i++;
}
}while(tmp==true);
cout<<"一共输入了"<<i<<"次,总数为:"<<sum<<endl;
return 0;*/
//}
//练习题二
/*#include <iostream>
using namespace std;
int main()
{
char value=0;
int number=0;
for(;;)
{
cout<<"请输入字符进行计算(输入q退出):";
cin>>value;
if(value=='q' || value == 'Q'){
break;
}
switch(value){
case 'a':
case 'e':
case 'i':
case 'o':
case 'u':
number += 1;
break;
}
}
cout<<"一共输入了"<<number<<"次元音字母"<<endl;
return 0;
}*/
//练习题三
/*#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
//cout<<setw(17);
for(int i=1; i<=12; i++){
if(i==1)
cout<<setw(8)<<" ";
cout<<setw(5)<<i;
}
cout<<endl;
for(int i=2; i<=12; i++)
{
cout<<setw(5)<<i<<" | "<<setw(5);
for(int j=1; j<=i; j++)
{
cout<<setw(5)<<i*j;
}
cout<<endl;
}
return 0;
}*/
//练习题四
#include <iostream>
using namespace std;
//十六进制数
const int text = 0x01; //0000 0000 0000 0001 ===1
const int binary = 0x02; //0000 0000 0000 0002 ===2
const int read = 0x10; //0000 0000 0000 0010 ===16
const int write = 0x20; //0000 0000 0000 0020 ===32
const int append = 0x40; //0000 0000 0000 0040 ===64
int main()
{
int mode=0;
for(int modeSelect =0; modeSelect <6; modeSelect++)
{
cout<<"modeSelect:"<<modeSelect<<endl;
switch(modeSelect)
{
case 0:
mode = text | read;
//0000 0000 0000 0001
//0000 0000 0000 0010
//0000 0000 0000 0011 ==17
//cout<<"mode:"<<mode<<endl;
break;
case 1:
mode = text | write;
//0000 0000 0000 0001
//0000 0000 0000 0020
//0000 0000 0000 0021 == 33
//cout<<"mode:"<<mode<<endl;
break;
case 2:
mode = text | append;
//0000 0000 0000 0001
//0000 0000 0000 0040
//0000 0000 0000 0041 ==65
//cout<<"mode:"<<mode<<endl;
break;
case 3:
mode = binary | read;
//0000 0000 0000 0002
//0000 0000 0000 0010
//0000 0000 0000 0012 ==18
//cout<<"mode:"<<mode<<endl;
break;
case 4:
mode = binary | write;
//0000 0000 0000 0002
//0000 0000 0000 0020
//0000 0000 0000 0022 ==34
//cout<<"mode:"<<mode<<endl;
break;
case 5:
mode = binary | append;
//0000 0000 0000 0002
//0000 0000 0000 0040
//0000 0000 0000 0042 ==66
//cout<<"mode:"<<mode<<endl;
break;
}
//确定被设定的模式,并输出它
//0000 0000 0000 0011
//0000 0000 0000 0001
//0000 0000 0000 0001 ok text
//0000 0000 0000 0011
//0000 0000 0000 0012
//0000 0000 0000 0010 ok binary
//=====这里又弄不错了样,不知道&咱算出来的,是这样吗?
//弄不懂哦
//如果将16进制转换为32位的二进制然后进行 与操作,好像出现的是正确的
if(mode & text){
cout<<"mode is (text,";
}else if(mode & binary){
cout<<"mode is (binary,";
}
cout<<endl;
if(mode & read){
cout<<"read)";
}else if(mode & write){
cout<<"write)";
}else if(mode & append){
cout<<"append)";
}
cout<<endl;
}
return 0;
}
//练习题五 ->
//第五题
/*#include "stdafx.h"
#include <iostream>
using namespace System;
int main(array<System::String ^> ^args)
{
ConsoleKeyInfo keypress;
do{
keypress = Console::ReadKey(true);
Console::Write(L"You Pressed ");
if(safe_cast<int>(keypress.Modifiers) > 0)
{
Console::WriteLine(L" {0}, ", keypress.Modifiers);
}
Console::WriteLine(L"{0} which is the {0} character",keypress.Key, keypress.KeyChar);
}while(keypress.Key != ConsoleKey::Escape);
system("pause");
return 0;
}*/
//第六题
#include "stdafx.h"
#include <iostream>
using namespace System;
int main(array<System::String ^> ^args)
{
String^ str="Hello world Xlc Aeiou @@@";
int count=0, noLetter=0, Bletter=0, Sletter=0;
for each(wchar_t ch in str)
{
//Console::Write(L"{0}",ch);
//Char::IsLetter(ch)
if(Char::IsLetter(ch)){
if(ch>='A' && ch<='Z'){
Bletter++;
}else if(ch>='a' && ch<='z'){
Sletter++;
}
}else{
noLetter++;
}
count++;
}
Console::WriteLine(L"字符串长度为:{0} 大写字母为:{1} 小写字母为:{2} 其它字符为:{3}",count,Bletter,Sletter,noLetter);
//cout<<"字符串长度为:"<<count<<" "<<Bletter<<" "<<Sletter<<" "<<noLetter<<endl;
system("pause");
return 0;
}