for(int i=0;i<6;i++){ int k=++i; while(k<5){ System.out.print(i); k+=2;

哪位高手来给我看看,输出结果是什么?为什么是哪个结果啊,我是菜鸟,能说的详细点吗?

你这代码 输出值的地方 你确定是c 或者 c++里面的?不是吧 即使是 你的用法也可能是错误的!
改下:条件一样 输出的是 i的值
#include <iostream>
using namespace std;
int main(){
for(int i=0;i<6;i++){
int k=++i;
while(k<5){
cout<<i<<"\t";
k+=2;
}cout<<endl;
}
return 0;
}
输出结果是 1 1
3
:解释
第一次循环
i=0; 然后赋值给k的时候 执行的语句 int k= ++i; 这里 i先自加 i就等于1了 然后赋值给k,k也等于1;
因为k=1 小于5 执行 while 语句 输出i 即是 输出1;
然后 执行k+=2;只是复合赋值语句等同于 k=k+2; k变成了 3 还是小于5 再输出 i 第二个1 ; 在又执行k+=2; k=5了 不小于5 while 循环结束

第二次 for循环
回去执行for 语句的最后一句 i++ 执行完以后 i=2了;是小于6的 执行for循环里面的语句 int k=++i;与上面语法一样 执行完这句 i=3 k=3;
判断while 成立 输出 3 执行k+=2 ;k=5 不满足条件k<5;while结束
第三次for 循环
执行for 里面的 i++ ;i=4 i小于6
执行 int k=++i; i=5,k=5;不执行while 不输出i ;执行for 里面的i++ ;i=6
不满足i小于6 for 结束 全部结束;追问

public class textdemo {
public static void main(String[] args) {
for(int i=0;i<6;i++){
int k=++i;
while(k<5){
System.out.print(i);
k+=2;
}
}

}
}运行结果是113,环境是在java的Eclipse中运行的,高手给我讲讲为什么是这个结果啊?帮我

追答

囧啊 我没看过一点java 不过函数是通的
你的是113 而不是 1 1 3 这种 是因为 你输出 i 的时候 没有设置 间隔符

函数的运行过程 前面 三次循环 已经说的那么详细了啊 到底要讲什么 要是讲java我就不会了

追问

多谢你了,你的答案是对的,语言是想通的,但是我还是有点不太明白,如有时间,还想具体请教你一些其他问题,我的QQ:839155636,如果方便的话加我,我一般都在线!

温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-10-16
输出i的值吧...
第2个回答  2011-10-16
你的代码真可以