首先,我在for循环外定义了两个变量.

//在4条直线方向,获取预置点两端的8个点的棋盘信息
int step1=,r=,c=;//step代表直线,r,c分别代表加上偏移量之后的坐标
int count=,myCount=,hisCount=;//与中心点相连接的同色子的个数,myCount用于myScore,hisCount用于hisScore
int chessInfo[][];//定义4个存储每条直线上的,预置点附近点的信息.一维0,1,2,3分别为竖直,k=1,水平,k=-1的直线.
//存储方式:如水平线上,预置点左边3个与右边3个,如chess[2][8]={左3,左2,左1,左,右,右1,右2,右3},其他同理.

然后,我在for循环中的更改变量后,望使用更改后的变量值,代码中标红处.

//存储信息并判断分数
for(step1;step1<;step1++) {
for(int changeCount=;changeCount!=;changeCount++){
int dir = step1;
int nowChess;
if(changeCount==){//改变判断棋子的角度
nowChess=myChess;
//qDebug()<<__LINE__<<nowChess;
}else if(changeCount==){
nowChess=(myChess==?:);
//qDebug()<<__LINE__<<nowChess;
}
for(int k=;k<;k++){//每个方向取4个子的信息
if(k==0){
//qDebug()<<__LINE__<<"switch";
switch(step1){//前四个方向的初始值,通过基点位置加偏移量的方式,获取附近的点信息
case 0:
r=i-1+1;
c=j+1;
                    break;
case 1:
r=i-1+1;
c=j+1+1;
                    break;
case 2:
r=i+1;
c=j+1+1;
                    break;
case 3:
r=i+1+1;
c=j+1+1;
                    break;
}
}else{
qDebug()<<__LINE__<<"!";
qDebug()<<__LINE__<<r;
qDebug()<<__LINE__<<c;
r+=dx[dir];//这里有问题,r和c并没有变化,不知道为什么.
c+=dy[dir];
//qDebug()<<__LINE__<<r;
//qDebug()<<__LINE__<<c;
//qDebug()<<__LINE__<<"!";
}
if(r< || c< || r> || c>){
break;
}
if(chess[r][c]==nowChess){
count++;
chessInfo[step1][-k]=nowChess;
}else{
chessInfo[step1][-k]=chess[r][c];
break;
}
}
for(int k=;k<;k++){
dir+=;
if(k==0){
//qDebug()<<__LINE__<<"switch";
switch(step1){//后四个方向的初始值
case 0:
r=i+1+1;
c=j+1;
                    break;
case 1:
r=i+1+1;
c=j-1+1;
                    break;
case 2:
r=i+1;
c=j-1+1;
                    break;
case 3:
r=i-1+1;
c=j-1+1;
                    break;
}
}else{
//qDebug()<<__LINE__<<"!";
//qDebug()<<__LINE__<<r;
//qDebug()<<__LINE__<<c;
r+=dx[dir];
c+=dy[dir];
//qDebug()<<__LINE__<<r;
//qDebug()<<__LINE__<<c;
//qDebug()<<__LINE__<<"!";
}
if(r< || c< || r> || c>){
break;
}
if(chess[r][c]==nowChess){
chessInfo[step1][k+]=nowChess;
count++;
}else{
chessInfo[step1][k+]=chess[r][c];
break;
}
}
myCount=changeCount==?count:myCount;
hisCount=changeCount==?count:hisCount;
}
}

但qDebug()证明并没有成功使用修改后的变量.仍然使用了最初switch语句中改变的r和c的值.

求大神指教,为什么同样是for循环中,有的能够更改外部变量并使用改变后的值,有的却不行呢???

谢谢....

for循环相关的一个问题的更多相关文章

  1. 为什么很多人坚信“富贵险中求”?

    之家哥 2017-11-15 09:12:31 微信QQ微博 下载APP 摘要 网贷之家小编根据舆情频道的相关数据,精心整理的关于<为什么很多人坚信"富贵险中求"?>的 ...

  2. python基础全部知识点整理,超级全(20万字+)

    目录 Python编程语言简介 https://www.cnblogs.com/hany-postq473111315/p/12256134.html Python环境搭建及中文编码 https:// ...

  3. Tomcat一个BUG造成CLOSE_WAIT

    之前应该提过,我们线上架构整体重新架设了,应用层面使用的是Spring Boot,前段日子因为一些第三方的原因,略有些匆忙的提前开始线上的内测了.然后运维发现了个问题,服务器的HTTPS端口有大量的C ...

  4. 如何一步一步用DDD设计一个电商网站(九)—— 小心陷入值对象持久化的坑

    阅读目录 前言 场景1的思考 场景2的思考 避坑方式 实践 结语 一.前言 在上一篇中(如何一步一步用DDD设计一个电商网站(八)—— 会员价的集成),有一行注释的代码: public interfa ...

  5. 如何一步一步用DDD设计一个电商网站(八)—— 会员价的集成

    阅读目录 前言 建模 实现 结语 一.前言 前面几篇已经实现了一个基本的购买+售价计算的过程,这次再让售价丰满一些,增加一个会员价的概念.会员价在现在的主流电商中,是一个不大常见的模式,其带来的问题是 ...

  6. SQLSERVER将一个文件组的数据移动到另一个文件组

    SQLSERVER将一个文件组的数据移动到另一个文件组 有经验的大侠可以直接忽视这篇文章~ 这个问题有经验的人都知道怎麽做,因为我们公司的数据量不大没有这个需求,也不知道怎麽做实验 今天求助了QQ群里 ...

  7. 构建一个基本的前端自动化开发环境 —— 基于 Gulp 的前端集成解决方案(四)

    通过前面几节的准备工作,对于 npm / node / gulp 应该已经有了基本的认识,本节主要介绍如何构建一个基本的前端自动化开发环境. 下面将逐步构建一个可以自动编译 sass 文件.压缩 ja ...

  8. 【造轮子】打造一个简单的万能Excel读写工具

    大家工作或者平时是不是经常遇到要读写一些简单格式的Excel? shit!~很蛋疼,因为之前吹牛,就搞了个这东西,还算是挺实用,和大家分享下. 厌烦了每次搞简单类型的Excel读写?不怕~来,喜欢流式 ...

  9. 如何一步一步用DDD设计一个电商网站(十)—— 一个完整的购物车

     阅读目录 前言 回顾 梳理 实现 结语 一.前言 之前的文章中已经涉及到了购买商品加入购物车,购物车内购物项的金额计算等功能.本篇准备把剩下的购物车的基本概念一次处理完. 二.回顾 在动手之前我对之 ...

随机推荐

  1. Asp.Net Web API(二)

    创建一个Web API项目 第一步,创建以下项目 当然,你也可以创建一个Web API项目,利用 Web API模板,Web API模板使用 ASP.Net MVC提供API的帮助页. 添加Model ...

  2. ligerUI---ligerForm中下拉框使用

    写在前面: 最近项目的前框框架用的是ligerUI,一开始我是拒绝的,因为貌似ligerUI很少有人用,我真的很想问我们team的斌哥哥为什么要用ligerUI来做前端框架?????(啊哈哈哈,用什么 ...

  3. Servlet小总结

    Servlet Servlet(服务器端小程序)是使用Java语言编写的服务器端程序,像JSP一样,生成动态的Web页.Servlet主要运行在服务器端,并由服务器调用执行. Servlet处理的基本 ...

  4. BGP网络学习总结

    1.前言     云计算在中国发展越来越快,企业逐步开始将业务迁移到公有云中,方便运维,节省成本.公有云最复杂的地方是网络,客户对网络的需求千奇百怪,造成网络环境极其复杂,稍有不慎,就会出现网络连通性 ...

  5. php trim源码分析

    本文同时发表于https://github.com/zhangyachen/zhangyachen.github.io/issues/9 核心代码如下: /* {{{ php_trim() * mod ...

  6. 公牛与状压dp

    T1 疾病管理 裸得不能再裸的状压dp 不过数据范围骗人 考试时k==0的点没过 我也很无奈呀qwq #include<iostream> #include<cstdio> # ...

  7. 使用trim_galore软件遇到的问题

    我的原始测序数据是双端测序,在用trim_galore软件去接头的这一步,使用的命令行是 time nohup trim_galore R17002628-SKOV3-m6A_combined_R1. ...

  8. partition length exceeds the loop-partition-table-imposed maximum of 4294967295

    问题: 当大于2T的磁盘,在用parted操作的时候,会出现这样的报错,原因是因为现在的分区表是mbr,需要修改为gpt.mbr最大支持2T的空间. 解决方法: 搞清楚问题,解决方法也很简单:mkla ...

  9. 平衡树Treap模板与原理

    这次我们来讲一讲Treap(splay以后再更) 平衡树是一种排序二叉树(或二叉搜索树),所以排序二叉树可以迅速地判断两个值的大小,当然操作肯定不止那么多(不然我们还学什么). 而平衡树在排序二叉树的 ...

  10. [异常解决] 奇巧淫技——VirtualBox中的linux无显示启动,并在win7上远程控制

    楼主是资深技术宅(癖),由于感觉手上的老笔记本太卡,遂狠心买了个性能至强的主机同时配了个投影仪(满足躺着打代码的意淫场景).但是体验了大概一个月发现还是坐着打代码舒服,但是如下图坐着打代码总是要抬头看 ...