Mathematica Help with "Which[] in a For loop using Mathematica

  • Thread starter Thread starter habad
  • Start date Start date
  • Tags Tags
    Loop Mathematica
AI Thread Summary
The discussion revolves around a novice Mathematica user seeking help with the "Which" function in a "For" loop. The user encounters an issue where the output of "Which" is returning Null instead of the expected value. It is clarified that the semicolon in the original code discards the output of "Which," leading to the Null result. A solution is provided, suggesting the assignment of the "Which" result to a variable before printing it. The corrected code successfully produces the desired output.
habad
Messages
2
Reaction score
0
Hello,
I am a novice in Mathematica, but insisting to learn it. I would appreciate help in solving the following problem:

(*a=1;Which[a==1,x,a==2,b]*)

list := List[1611, 1612, 1613, 1614, 1615, 1616, 1617, 1618, 32, 10]

For[i = 1, i < 4, i++,

a = list[];

Print[a];

Print[list[]];

Which[a == 1611, x, a == 1612, y];

Print[%]]


When I run the code, I get the following result:

1611

1611

Null

1612

1612

Null

1613

1613

Null

While I think I am faithfully mimicking the Mathematica "Which statement" quoted above, it seems including the "Which" statement in the "For" loop does not make work as intended. Is this right? If not, please point out my mistake.

Best Regards
 
Physics news on Phys.org
Compare these two

Code:
In[3]:= q = 1611;
Which[q == 1611, x,
 q == 1612, y]

Out[4]= x

In[5]:= q = 1611;
Which[q == 1611, x,
  q == 1612, y];

In the first the value of the Which is x. In the second the semicolon, after after that Which, discards the output and the result is simply nothing (or Null). So in your example you are Printing the result returned from the previous expresssion, the Which, and that is nothing or Null. Thus Null is Printed.

If you changed your code to be

Code:
w = Which[a == 1611, x,
   a == 1612, y];
Print[w]

then you might get what you are hoping for.
 
Thank you so much. It works for me. :)
 

Similar threads

Replies
6
Views
4K
Replies
12
Views
5K
Replies
5
Views
2K
Replies
1
Views
2K
Replies
23
Views
5K
Replies
22
Views
3K
Replies
1
Views
1K
Replies
2
Views
6K
Back
Top