<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Серый форум &mdash; AHK: вложенность тернальных операторов]]></title>
	<link rel="self" href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=8272&amp;type=atom" />
	<updated>2013-05-03T17:48:17Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.script-coding.com/viewtopic.php?id=8272</id>
		<entry>
			<title type="html"><![CDATA[Re: AHK: вложенность тернальных операторов]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=71852#p71852" />
			<content type="html"><![CDATA[<p>Выражение &quot;nn=16 ? 12&quot; не является терна<strong>р</strong>ным, так как нет завершающего или. После окончательного &quot;или&quot;, желательно добавлять кавычки<br /></p><div class="codebox"><pre><code>ff:= nn=2 ? 1 : nn=11 ? 15 : nn=16 ? 12 : &quot;&quot;</code></pre></div><p>В данном случае можно обойтись </p><div class="codebox"><pre><code>ff:= nn=2 ? 1 : nn=11 ? 15 : 12 </code></pre></div><p> Так как результат заранее известен, если не 2 или 11.<br />Также для назначения нескольких переменных можно использовать такую тернарную конструкцию:</p><div class="codebox"><pre><code>
    loop, 3
    { 
        (A_Index = 1) ? (ff := 1 , nn := 2) : (A_Index = 2) ? (ff := 15 , nn := 11) : (ff := 12 , nn := 16) 
        msgbox %  &quot; ff = &quot; ff &quot; `n nn = &quot; nn 
    }</code></pre></div><div class="fancy_spoiler_switcher"><div class="fancy_spoiler_switcher_header"><strong>+</strong>&nbsp;более наглядный пример</div><div class="fancy_spoiler"><div class="codebox"><pre><code>  loop, 3
    { 
        (A_Index = 1) ? (ff := 1 , nn := 2) 
        : (A_Index = 2) ? (ff := 15 , nn := 11) 
        : (A_Index = 3) ? (ff := 12 , nn := 16) 
        msgbox %  &quot; ff = &quot; ff &quot; `n nn = &quot; nn 
    }</code></pre></div></div></div><p>Или использовать массивы:<br /></p><div class="codebox"><pre><code>
    loop, 3 
        msgbox %  &quot; ff = &quot; ff := {2:1,11:15,16:12}[ nn := [2,11,16][A_Index]] 
        . &quot;`n nn = &quot; nn 
</code></pre></div><p>Но это наверное можно ещё упростить, я с массивами плохо знаком.</p><p>Если всё зависит от итерации цикла то проще:<br /></p><div class="codebox"><pre><code>    loop, 3 
        msgbox %  &quot; ff = &quot; ff := [1,15,12][A_Index]   
        . &quot;`n nn = &quot; nn := [2,11,16][A_Index]   </code></pre></div>]]></content>
			<author>
				<name><![CDATA[serzh82saratov]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27879</uri>
			</author>
			<updated>2013-05-03T17:48:17Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=71852#p71852</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: вложенность тернальных операторов]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=71817#p71817" />
			<content type="html"><![CDATA[<p>Б-же мой, как все просто. А я два дня &quot;бился&quot;..... Спасибо <strong>YMP</strong></p><p>off: еще &quot;+&quot; пунктик в NFAQ</p>]]></content>
			<author>
				<name><![CDATA[Mikki]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=5905</uri>
			</author>
			<updated>2013-05-02T09:16:41Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=71817#p71817</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: вложенность тернальных операторов]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=71812#p71812" />
			<content type="html"><![CDATA[<p>В последнем случае тоже должен быть оператор выбора &quot;:&quot;<br /></p><div class="codebox"><pre><code>
#NoEnv 
#Singleinstance force

    A1:=2
    A2:=11 
    A3:=16 
    
    loop, 3
    {
        nn:=A%A_Index%
        ff:= nn=2 ? 1 : nn=11 ? 15 : nn=16 ? 12 :
        msgbox, nn=%nn%  ff=%ff%
    }
    
return
</code></pre></div>]]></content>
			<author>
				<name><![CDATA[YMP]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=81</uri>
			</author>
			<updated>2013-05-02T07:00:55Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=71812#p71812</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[AHK: вложенность тернальных операторов]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=71810#p71810" />
			<content type="html"><![CDATA[<p>Доброй ночи господа.<br />Не спиться после праздников и пытаюсь понять &quot;отчего скрипт не работает&quot;?<br />После третьего сравнения в тернальном операторе переменная ff пустая. Отчего так?</p><div class="codebox"><pre><code>#NoEnv 
#Singleinstance force

    A1:=2
    A2:=11 
    A3:=16 
    
    loop, 3
    {
        nn:=A%A_Index%
        ff:= nn=2 ? 1 : nn=11 ? 15 : nn=16 ? 12
        msgbox, nn=%nn%  ff=%ff%
    }
    
return</code></pre></div><p>Игрался со скобками и так и эдак. Не поддается.</p>]]></content>
			<author>
				<name><![CDATA[Mikki]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=5905</uri>
			</author>
			<updated>2013-05-02T01:46:47Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=71810#p71810</id>
		</entry>
</feed>
