下面您可以看到我的代码。运行此命令时,我会从所有三个switch语句中得到答案。我只希望其中一个switch语句有一个答案,而其他两个则可以忽略。我该怎么做?
RuntimeTypeAdapterFactory<parentGif> AbstractGifTypeAdapterFactory = RuntimeTypeAdapterFactory
.of(ParentGifParseImpl.class).registerSubtype(SubGifParseImpl.class);
Gson gson = new GsonBuilder().registerTypeAdapterFactory(AbstractGifTypeAdapterFactory).create();
答案 0 :(得分:3)
我认为您的意思是根据Grashof
,NGRASH
或SpecGrashof
中的哪一个为真来选择一种切换情况。您需要为此使用if
语句。
您对switch
的使用是不正确的,switch
的参数是一个变量,各种情况是该变量的可能值。我建议您read the documentation。
这是您打算写的:
if Grashof
switch S
case a
disp("GCCC")
case b
disp("GCRR")
case c
disp("GRCR")
case d
disp("GRRC")
otherwise
return
end
elseif NGRASH
switch L
case a
disp("RRR1")
case b
disp("RRR1")
case c
disp("RRR3")
case d
disp("RRR4")
otherwise
return
end
else % SpecGrashof must be true here, no need to test for it
switch S
case a
disp("SCCC")
case b
disp("SCRR")
case c
disp("SRCR")
case d
disp("SRRC")
otherwise
return
end
end
但是考虑到您对这三种情况的定义:
Grashof = L+S < sum(Lengths)-(S+L); %This will direct to 'Grashof' cases
NGRASH = L+S > sum(Lengths)-(S+L); %This will direct to 'Non-grashof' cases
SpecGrashof = L+S == sum(Lengths)-(S+L); %This will direct to 'Special Grashof' cases
您还可以打开以下值的符号:
K = (L+S) - (sum(Lengths)-(S+L));
switch sign(K)
case -1 % Grashof cases
% ...
case 1 % NGRASH cases
% ...
case 0 % Special Grashof cases
% ...
end
在每种情况下,您都应如上所述将switch语句放在S
或L
上。