首先,我在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. C#读取XML文件的五个步骤

    //1.创建XmlDocument对象 XmlDocument  xmlDoc=new XmlDocument(); //2.加载源文件 xmlDoc.Load("文件名.xml" ...

  2. Linux chgrp

    在学习 兄弟连 linux教学视频 的时候,我将所学的 linux 命令记录在我的博客中,方便自己查阅. 权限管理命令: chgrp 基础的命令 命令名称:chgrp 命令英文原意:change fi ...

  3. 微信小程序使用场景延伸:扫码登录、扫码支付

    微信小程序使用场景延伸:扫码登录.扫码支付 小程序最适合的使用场景有哪些?相比大家能列举出来很多,但这个场景,大家可能多数没想到_^ 笔者团队近期接到了一个PC项目:转转游戏租号PC官网,该项目要求在 ...

  4. bzoj 3143: [Hnoi2013]游走

    Description 一个无向连通图,顶点从1编号到N,边从1编号到M. 小Z在该图上进行随机游走,初始时小Z在1号顶点,每一步小Z以相等的概率随机选 择当前顶点的某条边,沿着这条边走到下一个顶点, ...

  5. Docker -- 安全/部分命令/Daemon

    Docker -- 终极指南 1.安装过程 -- Docker -- docker pull 镜像 -- docker images 列出镜像    -- docker run --rm -ti ub ...

  6. android的ADK下载地址

    把下面所有的包下载到temp目录下进行安装. 用代理http://ppdaili.com/https://dl-ssl.google.com/android/repository/repository ...

  7. mybatis源码分析(一)

    mybatis源码分析(sqlSessionFactory生成过程) 1. mybatis框架在现在各个IT公司的使用不用多说,这几天看了mybatis的一些源码,赶紧做个笔记. 2. 看源码从一个d ...

  8. Java编程学习知识点分享 入门必看

    Java编程学习知识点分享 入门必看 阿尔法颜色组成(alpha color component):颜色组成用来描述颜色的透明度或不透明度.阿尔法组成越高,颜色越不透明. API:应用编程接口.针对软 ...

  9. Talk 3: Rob Pike on Upspin (Gopherfest 2017)

    Talk 3: Rob Pike on Upspin Upspin is an experimental project to build a framework for naming and sha ...

  10. KD树

    k-d树 在计算机科学里,k-d树( k-维树的缩写)是在k维欧几里德空间组织点的数据结构.k-d树可以使用在多种应用场合,如多维键值搜索(例:范围搜寻及最邻近搜索).k-d树是空间二分树(Binar ...