#define _CRT_SECURE_NO_WARNINGS
//-----------------------------------------------------------------------------------------------------------3.2 for循环
#include <stdio.h>
//-----------------------------------------------------------------------------------------------3.2.1 语法
// for(表达式1;表达式2;表达式3)
// 循环语句
/*
表达式1 初始部分
表达式2 条件判读部分
表达式3 调整部分
*/
//-----------------------------while 循环
//int main()
//{
// int i = 1;//初始化
// while (i <= 10)//判断
// {
// printf("%d", i);
// i++;//调整
// }
//
// return 0;
//}
//------------------------------for 循环 (最方便,最普遍)
//int main()
//{
// int i = 0; //定义变量初始化
// for (i = 1; i <= 10; i++) //三个表达式
// {
// printf("%d\n", i);
// printf("hehe\n");
// }
// return 0;
//
//}
//-----------------------------------------------------------------------------------------------3.2.2 break 和 continue 在for 中的应用
//----------------------------------------------------------------------break
//int main()
//{
// int i = 0;
// for (i = 1; i <= 10; i++)
// if (i == 5)
// {
// break;//直接终止循环,和while循环里的break 意思一样
// //break只能结束一层循环
// printf("%d\n", i);//输出1 2 3 4
// }
// return 0;
//}
//----------------------------------------------------------------------continue
//int main()
//{
// int i = 0;
// for (i = 1; i <= 10; i++)
// {
// if (i == 5)
// continue; //跳过 本次循环后边的代码,直接去调整代码
// // while 循环里的 continue 会跳过 continue 后边的代码(包括调整代码),直接去判断语句,最后死循环
// printf("%d\n", i);//输出1 2 3 4 6 7 8 9 10
// }
// return 0;
//}
//-----------------------------------------------------------------------------------------------3.2.3 for 语句的循环控制变量
//建议
//1.不可在for循环体内修改循环变量,防止for循环失去控制
//2.建议for语句的循环变量的取值采用"前闭后开区间"写法
//-------------------------------------------------------------
//int main()
//{
// int i = 0;
// for (i = 1; i <= 10; i++)
// if (i == 5)
// {
// printf("%d\n", i);//输出1 2 3 4
// }
// i = 12;// 在for循环体内修改循环变量,不可取×××××××××××××××××××
// return 0;
//}
//-------------------------------------------------------------
//int main()
//{
// int arr[10] = {1,2,3,4,5,6,7,8,9,10};
// int i = 0;
// for (i = 0; i < 10; i++)//建议,前闭后开
// //for (i = 0; i < =9; i++) //不推荐
// //for (i = 100; i <= 200; i++) //有时候也用,怎么合适怎么来
// {
// printf("%d ", arr[i]);
// }
// return 0;
//}
//---------------------------------------------------------------------------------------------3.2.4 一些 for 循环的变种
//-------------------------------------------------------------------代码1: 判断缺失
// for 循环的判断部分省略意味着判断会恒成立
//int main()
//{
// for (; ;) for 循环的判断部分(事件二)省略意味着判断会恒成立
// {
// printf("hehe\n"); //无限输出hehe,死循环
// }
// return 0;
//
//}
//-------------------------------------------------------------------代码2: 初始化缺失
// for 循环的初始化部分省略可能会出问题
//int main()
//{
// int i = 0;
// int j = 0;
// //for (i = 1; i < 3; i++)
// //{
// // for (j = 1; j < 3; j++)
// // {
// // printf("hehe\n"); //输出 9 个hehe
// // }
// //}
//
// for (; i < 3; i++) // i=1(事件一)不写
// {
// for (; j < 3; j++) // j=1(事件一)不写
// {
// printf("hehe\n"); //只能输出 3 个hehe
// //因为 j 没有初始化,所以第二次大循环进来是 j 还是上次的 3 ,判断为假,跳出 j 循环
// }
// }
// return 0;
//
//}
//-------------------------------------------------------------------代码3: 初始化
//在循环初始化的时候定义变量,C语言里只有C99语法这样写,C++里才这么写
//int main()
//{
// for (int i = 1; i <= 10; i++) //在循环初始化的时候定义变量 ,有时候不支持
// {
// printf("hehe\n");
// }
// return 0;
//
//}
//-------------------------------------------------------------------代码4: 使用多余一个变量控制循环
//int main()
//{
// int x = 0;
// int y = 0;
// for (x = 0, y = 0; x < 2 && y < 5; ++x, ++y)//(x<2 并且 y<5 )才进入循环
// {
// printf("hehe\n");
// }
// return 0;
//}
//--------------------------------------------------------------------------------------------------3.2.5 练习
//循环多少次?
int main()
{
int i = 0;
int k = 0;
for (i = 0, k = 0; k = 0; i++, k++)
k++;
return 0;
}