我只是想知道为什么
int i;
for (i=0; i<5; i++){
printf("%d\n",i)
}
printf("Here i get the result that misleads me : %d\n",i)
最后一个值是5。
我的逻辑是:
From 0 to 4 -> printf
If i > 4 (since we are dealing with integers) stop the loop.
但是循环停止在4,而不是5!为什么我在循环结束后得到5?为什么它会增加呢?
武断?
谢谢,
为了备考,我正在忙于解答一些关于c/c++的一般性问题。其中一个问题是描述函数leer(char *a)返回的值。我期望该函数返回c字符串中的空格数量,但我的测试表明,leer实际上只检查第一个字符,因此如果第一个元素是空格,则返回1,如果不是,则返回0。它甚至不会遍历字符串,但在检查第一个char后返回,而main函数中的同一个循环计算所有空格,正如我最初所想的那样。我不明白为什么它们的行为不同,因为leer的参数与我在main函数内的for循环中使用的参数相同。我假设我在这里缺乏一些指针知识,但我不明白为什么我最初的想法是错误的。
#include <iostream>
in
我正在尝试下面的C代码:
#include <stdio.h>
int main()
{
int i=10;
int start=25;
int end = 30;
for(i = start; i < end; i++);
{
printf("%d\n", i);
}
}
我知道for循环的末尾有一个分号,它会停止for循环不止一次的迭代。但我得到的输出是'30',而不是'25‘。为什么我会得到这样的结果?变量i应该保留它的起始值,对吗?
javascript中的continue语句对我来说没有实际意义,还是我想得太多了?
例如,假设我支持在一个对象内进行扑克牌:
for (i in JM) {
if (JM[i].event == 'StartLocation') {
continue;
}
}
如果该If语句是true,那么技术上它将跳过该迭代。那我们为什么要用continue这个词呢?用break这个词不是更有意义吗?但是,break完全相反,它停止循环,对吗?(或者可能是一条叫做hop的语句)是有道理的。直到几分钟前才真正想到这一点:P
我是编程、数据结构和算法方面的新手。我理解这个程序,我不理解的是为什么它会递归地做我想要做的事情?我想我想问的是,为什么它不在遍历列表一次后停止?它会一直运行,直到对整个列表进行排序。
def bubblesort(numbers):
for i in range(len(numbers)):
for j in range(len(numbers) - 1):
if(numbers[j] > numbers[j+1]):
temp = numbers[j]
numbers[j]
>>> k = 8
>>> for i in range(k):
print i
k -= 3
print k
上面是从0-7打印数字的代码,如果我在for循环中只使用print i的话。
我想了解上面的代码是如何工作的,有什么方法可以更新range(variable)中使用的变量的值,以便它以不同的方式迭代。
还有为什么它总是迭代到初始的k值,为什么这个值没有更新。
我知道这是个愚蠢的问题,但所有的想法和意见都是受欢迎的。
为什么python在我尝试这样做时不会引发错误,相反,它什么也不打印。
empty = []
for i in empty:
for y in i:
print(y)
是那个python停止在第一级迭代它,或者它只是迭代并打印None。
我在尝试创建一个无限循环时发现了这种情况,但是当列表变为空时,它就停止了。
我是这个站点的新手,也是Java的新手,我正在努力理解do while循环
问题:输出是什么?为什么?
public class DoWhile {
public static void main(String[] args) {
int i = 1;
do {
System.out.println("i is : " + i);
i++;
} while(i < 1);
}
}
我知道输出是"i是: 1“,但我试图理解为什么。一旦它击
我有一个简单的程序,我需要从数组列表中删除element并更新循环中的大小。
dist fin和tab2是arrays lists
int k=2;
int count =0;
int temp,num;//lets say this 2 vars are known and positive
while (k > 0){
while(count < dist.size()){
double num=dist.get(count);
if (temp>num){
temp = num;
}
我试图获取用户输入,并将该输入与数组B中的值进行比较。如果用户输入与数组B中的值匹配,我将捕获位于数组B中的索引,并将数组A替换为在数组B中找到的相同索引处的用户输入。
在代码示例中,如果输入11,则在数组B中找到11,并将其插入数组A中的相同索引点,但如果选择22、33或44,则不会替换任何内容。
你认为下面的代码有什么问题吗?为什么它在数组B中识别数字11,而在数组A中用1代替它,而其他的则没有?
a = [1,2,3,4]
b = [11,22,33,44]
c = input("Enter a Number: ")
for i in b:
if c == i:
在嵌套循环中,在跳出内部循环并转到顶部循环后,它会跳过内部循环的参数。为什么以及如何解决此问题? for i in range(5):
for j in range(5):
if i == j:
print('Same Number')
break 这段代码只打印“Same Number”一次。当1 =1时,我不确定为什么j从不改变,但我改变了。
my_array = [1,2,3,4,5]
total = len(my_array)
for value in range(total):
print(my_array[value])
my_array.append(value*value)
total = len(my_array)
print(my_array)
如果您附加了调试器,并且看到变量"total“的值将增加
结果是4 3 2,我不知道为什么。for如何处理堆栈/队列/列表?我不想为这段代码寻找更好的选择(因为我已经知道了),我只想知道这段代码是如何工作的。
class Stack_1 {
public static void main(String [] args) {
Stack s = new Stack();
List l= new LinkedList();
for(int i = 0; i < 5; i++)
s.add(i);
for(int i = 0; i
我想检查一个进程是否仍在运行--如果是,更新当前时间--如果没有从函数bc返回,进程已停止,并且已超过停止限制,则退出循环,但看起来currTime没有更新……
int g_iStopLimit = 30; //declared globally
/////process gets signaled to be killed but may take a while to close cleanly...
time_t startTime, currTime;
time(&startTime);
currTime = time(NULL);
do //check to see
列表中的变量可以很好地处理代码: pyautogui.typewrite(i),并且停止在列表的中途随机工作。
在以下内容中可以进行哪些增强,以及如何使它不惜一切代价到达文件的末尾?
它是否与for循环以外的其他语句有关,或者我是否应该想出一种更好的方法从文本文件中获取列表?
谢谢你提前提供帮助。
results = []
with open('H:\RetiredDevices.txt') as inputfile:
for line in inputfile:
results.append(line)
while True
我对python和编程非常陌生。我现在正在学习循环,并尝试了以下代码,看看会发生什么。我想知道的是,为什么下面的代码不会崩溃,也不会一直重复"Robert“。
谢谢。
name = ["Robert", "Mike", "Garry", "Alex"]
for y in name:
print(y)
del y
print("END")
我编写了一个java程序,它使用collatz序列找到数字链的长度。collatz序列是这样的:如果数字是偶数,除以2,如果奇数,乘以3,再加上1。当数字达到1.时,序列结束。我的程序找到了数字的链长从1到1百万,但它停止在113382。没有显示错误信息,程序就会停止打印数字。
*编辑:我测试过它,结果发现当程序在113383上时,链会收敛到负值。有人能解释一下吗?
我已经包括了完整的代码,因为它很短。
public static void main(String[] args) {
int max =0, maxChain=0;
for(int i = 2; i <10
在TCP 服务器中,如果服务器接受来自客户端的连接,然后关闭与客户端连接相关联的套接字,则客户端仍然可以向服务器发送数据。客户端不会引发任何异常。
为什么关闭此套接字不会导致客户端出现异常?
我期望客户端尝试发送,意识到它不再连接到服务器套接字,然后引发异常。显然,这并没有发生,这意味着我对套接字在这里应该如何工作的假设是错误的(很有可能),或者我的代码(如下所示)是错误的。:-)
public async Task Demo()
{
var endPoint = new IPEndPoint(IPAddress.Loopback, 2100);
var serverTask
很抱歉问了个很蠢的问题。我的循环不停止在0,我也不知道为什么。
这个循环将在i=1处停止。
for (unsigned int i = 3 ; i > 0 ; i--)
而这将停止在I= 4294967295而不是
for (unsigned int i = 3 ; i >= 0 ; i--)
为什么?我有错过什么吗?