以 FizzBuzz 为例,for 循环中的这个 switch case 在每个 case 之后使用 break。
for (num = 1; num <= 100000; num ++) {
switch (true) {
case (num % 15 == 0):
console.log("FizzBuzz");
break;
case (num % 3 == 0):
console.log("Fizz");
break;
case (num % 5 == 0):
console.log("Buzz");
break;
default:
console.log(num);
break;
}
}
Run Code Online (Sandbox Code Playgroud)
在 Mozilla 的文档中,他们说...
与每个 case 标签相关联的可选 break 语句确保程序在执行匹配的语句后中断 switch 并在 switch 之后的语句处继续执行。如果省略 break ,程序将在 switch 语句中的下一个语句处继续执行。
我假设它们的意思是当脚本检查 num % 15 == 0 时,如果没有中断并且即使它匹配 true,它也会转到 …
谁能解释一下这段代码?我无法理解为什么此代码中的打印值为8
有人可以向我解释
#include <stdio.h>
int f(int i){
switch (i){
case 0 :
return 0;
case 1:
case 2:
return 1;
default:
return f(i-2)+f(i-1);
}
}
void main(void) {
printf("%d", f(6));
}
Run Code Online (Sandbox Code Playgroud) switch(at){
case (at>0 && at<5) :
printf("Average Time Taken (Hrs)\n%d.0",at);
printf("Your Salary is Rs.%d",pj*1500 + 5000);
break;
Run Code Online (Sandbox Code Playgroud)
其余的代码是相似的.我收到了这个错误case (at>0 && at<5) :
我有这个switch case statement在我的FragmentStatePagerAdapter.我已经研究了许多类似的问题,但没有一个提供更短的答案,这意味着switch案例仍然在他们的代码中.
这段代码看起来非常重复和丑陋.有没有办法让这个看起来更短?
@Override
public SongListFragment getItem(int position) {
SongListFragment slf = new SongListFragment();
switch (position) {
case 0:
slf.setAudioList(getAudioList(tabTitles[0]));
slf.setItemOnClickListener(new SongListFragment.SongListItemOnClickListener() {
@Override
public void onClick(Audio audio) {
itemListener.onClick(audio);
}
});
return slf;
case 1:
slf.setAudioList(getAudioList(tabTitles[1]));
slf.setItemOnClickListener(new SongListFragment.SongListItemOnClickListener() {
@Override
public void onClick(Audio audio) {
itemListener.onClick(audio);
}
});
return slf;
case 2:
slf.setAudioList(getAudioList(tabTitles[2]));
slf.setItemOnClickListener(new SongListFragment.SongListItemOnClickListener() {
@Override
public void onClick(Audio audio) {
itemListener.onClick(audio);
}
});
return slf;
case 3:
slf.setAudioList(getAudioList(tabTitles[3]));
slf.setItemOnClickListener(new SongListFragment.SongListItemOnClickListener() …Run Code Online (Sandbox Code Playgroud) 我试图switch/case通过其他工具替换结构做同样的事情,但具有更好的性能(更少的执行时间...),我想到的#ifdef方法,但我不知道如何在这种情况下使用它:
float k_function(float *x,float *y,struct svm_model model)
{
int i;
float sum=0.0;
switch(model.model_kernel_type)
{
case LINEAR :
return result1;
case POLY :
return result2;
case RBF :
return result3;
case SIGMOID :
return result4;
default :
return 0;
}
}
Run Code Online (Sandbox Code Playgroud)
PS:
typedef enum kernel_type {LINEAR, POLY, RBF, SIGMOID};
Run Code Online (Sandbox Code Playgroud) 当然在发布此错误之前我搜索了它.下面的代码返回:错误CS0029:无法在两个位置隐式地将类型'bool'转换为'string'.我误解为什么下面的代码没有返回字符串?想一想Stack Overflow可能会给出什么建议我已经尽力明确地转换为字符串,但只是设法让自己感到困惑.
public static class Bob
{
public static string Response(string statement)
{
string teststring = statement;
bool IsAllUpper(string input)
{
for (int i = 0; i < input.Length; i++)
{
if (Char.IsLetter(input[i]) && !Char.IsUpper(input[i]))
return false;
}
return true;
}
switch(teststring)
{
case IsAllUpper(teststring) && teststring.EndsWith("?"):
string final1 = "Calm down, I know what I'm doing!";
return final1;
case teststring.EndsWith("?"):
string final2 = "Sure";
return final2;
default:
string final3 = "Whatever.";
return final3;
}
} …Run Code Online (Sandbox Code Playgroud) 例如:
var
Msg: Cardinal;
case Msg of
WM_CHAR:
WM_KEYDOWN:
WM_KEYUP:
begin
// Do something
end;
end;
Run Code Online (Sandbox Code Playgroud) 我仍然是使用C语言进行编程的世界的初学者,如果您能得到我的帮助,我希望它!
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
int week;
/* Input week number from user */
printf("Enter week number(1-7): ");
scanf("%d", &week);
switch(week)
{
case 1:
printf("Monday");
break;
case 2:
printf("Tuesday");
break;
case 3:
printf("Wednesday");
break;
case 4:
printf("Thursday");
break;
case 5:
printf("Friday");
break;
case 6:
printf("Saturday");
break;
case 7:
printf("Sunday");
break;
default:
printf("Invalid input! Please enter week number between 1-7.");
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)
多数民众赞成在我想做的问题:
“编写一个C程序,该程序保留用户的数字,并生成1到7之间的整数,并显示工作日的名称。”
我目前唯一缺少的是我要让用户输入一个随机数,然后生成1到7之间的随机数
如果可以x被 整除y,我想模式匹配,返回 true 但我似乎语法错误并且它一直崩溃。
def isDivisible (x: Int, y: Int) :Boolean = Int match {
case (x % y == 0) => true
case _ => false
}
isDivisible(10, 5)
Run Code Online (Sandbox Code Playgroud)
将方程作为个案的正确方法是什么
既然true falseC 中没有布尔类型,那么表达式的x == y计算结果是什么,什么时候为真,什么时候为假?
如果它的计算结果分别为 1 和 0,它们是整数,为什么我们不能case在switch语句中使用s这样的表达式?
这背后的正确原因是:
x==y,那么多个 case很有可能最终具有相同的值,即,无论何时,我们都会得到 1,因此多个这样的 case 将评估为 1 或 0;这在 switch 语句中是不允许的。switch-statement ×10
c ×5
c# ×1
case ×1
delphi ×1
function ×1
java ×1
javascript ×1
jvm ×1
loops ×1
random ×1
random-seed ×1
scala ×1