首先,我在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. 自学Zabbix3.2-配置功能简介

    zabbix配置功能介绍 zabbix配置内容比较多,我们要分为9大块来讲解.分别如下: 1. 主机与组        添加主机配置与组配置. 1.1.创建主机方法 1.1.1 新建主机      c ...

  2. springboot(十五):springboot+jpa+thymeleaf增删改查示例

    这篇文章介绍如何使用jpa和thymeleaf做一个增删改查的示例. 先和大家聊聊我为什么喜欢写这种脚手架的项目,在我学习一门新技术的时候,总是想快速的搭建起一个demo来试试它的效果,越简单越容易上 ...

  3. check the manual that corresponds to your MySQL server version for the right syntax处理方案

    check the manual that corresponds to your MySQL server version for the right syntax:代码出现这样的bug,就要注意你 ...

  4. 用Inferno代替React开发高性能响应式WEB应用

    什么是Inferno Inferno可以看做是React的另一个精简.高性能实现.它的使用方式跟React基本相同,无论是JSX语法.组件的建立.组件的生命周期,还是与Redux或Mobx的配合.路由 ...

  5. [原创]mysql的zip包如何在windows下安装

    今天在尝试zipkin的链路数据写入mysql,本机恰好没有按照mysql.找到一个很久前谁发的mysql-5.6.19-winx64.zip,版本不新?别挑剔啦,只是本机测试,能用就好哈哈.. 解压 ...

  6. Find Unique pair in an array with pairs of numbers 在具有数字对的数组中查找唯一对

    给定一个数组,其中每个元素出现两次,除了一对(两个元素).找到这个唯一对的元素. 输入:第一行输入包含一个表示测试用例数的整数T.然后T测试用例如下.每个测试用例由两行组成.每个测试用例的第一行包含整 ...

  7. sql经典试题

    1.一道SQL语句面试题,关于group by表内容:2005-05-09 胜2005-05-09 胜2005-05-09 负2005-05-09 负2005-05-10 胜2005-05-10 负2 ...

  8. Python连接webstocker获取消息

    简介(脚本都是根据网上资料改写) 此脚本主要是客户觉得webstcket不稳定,所以编辑一个脚本,不停的请求web服务器,当发生错误时,脚本自动退出(). 脚本内容 脚本一 # -*- coding: ...

  9. Cleaner, more elegant, and harder to recognize (msdn blog)

    It appears that some people interpreted the title of one of my rants from many months ago, "Cle ...

  10. js获取字符串最后一位方法

    方法一:运用String对象下的charAt方法 charAt() 方法可返回指定位置的字符. str.charAt(str.length – 1) 请注意,JavaScript 并没有一种有别于字符 ...