我在这个NSString中下面代码的第一行的switch语句中得到一个"预期表达式"错误: NSString *emailTitle = @"some text";
break;
case 4:
// mail
// Email Subject
NSString *emailTitle = @"some text";
// Email Content
NSString *messageBody = @"http://www.example.com/";
// To address
NSArray *toRecipents = [NSArray arrayWithObject:@""];
MFMailComposeViewController *mc = [[MFMailComposeViewController alloc] init];
mc.mailComposeDelegate = self;
[mc setSubject:emailTitle];
[mc setMessageBody:messageBody isHTML:NO];
[mc setToRecipients:toRecipents];
// Present mail view controller on screen
[self presentViewController:mc animated:YES completion:NULL];
break;
case 5:
Run Code Online (Sandbox Code Playgroud)
没有这段电子邮件代码,switch语句可以正常工作.
谢谢你的帮助
我的代码看起来像这样:
-(void)touchBegan:(HWPoint *)point {
switch (self.states) {
case HWDrawState:
HWShape *shape = [[HWShapeManager sharedInstance] addShapeWithType:_shapeClass];
break;
case HWSelectState:
break;
case HWDeleteState:
break;
default:
break;
}
}
Run Code Online (Sandbox Code Playgroud)
为什么HWShape存在问题....?我收到了一个错误:
"错误:'HWShape'之前的预期表达式".
这是为什么?非常感谢您的回复.
switch(choice)
{
case 1:
uinstance1.addNewProduct(data);
break;
case 2:
break;
case 3:
break;
case 4:
break;
case 5:
break;
case 6:
break;
case 7:
uinstance1.listAllProducts(data);
break;
case 8:
break;
case 9:
break;
case 10:
//name,category,barcode,price,manufacturer,noinstock,soldpermonth,expirydate,discount
// Perishable(string,string,string,double,string,int,int);
Perishable item0("Ferrari","Automobile","9999",2999.99,"Popular",5,0);
data.addNew(item0);
break;
default:
cout<<"Wrong Choice "<<endl;
system("pause");
break;
}
}
Run Code Online (Sandbox Code Playgroud)
嗨,我一直在考虑这个错误很长一段时间,似乎无法弄清楚这个问题.
错误C2361:'default'标签跳过初始化'item0':参见'item0'的声明
一些帮助将不胜感激.谢谢
奇怪的是,我c在一个switch语句中初始化了以下数组,完全期望我的编译器说不,你不能这样做,但令我惊讶的是它在MSVC,GCC和Clang编译.在线示例
我假设标准允许它,在这种情况下我的问题是为什么?...考虑到case语句中不允许声明和初始化非数组.
int main()
{
char ch;
switch( ch )
{
case 'x':
//int a = 42; // NOT OKAY
break;
case 'y':
int b;
b = 42; // OKAY
case 'z':
int c[2] = { 0 , 1 }; // OKAY (Huh???)
break;
};
}
Run Code Online (Sandbox Code Playgroud) 我需要能够更新这些变量。
我需要能够增加基本伤害或准确性,射速或射程,一旦添加,我需要能够通过向变量添加更多点来不断更新变量所以。
需要减去总点数,但是如果您继续在菜单中购买商品,则在首次减去变量后,变量根本不会改变。
更新变量后,您应该能够查看积分值和武器统计数据的总和,并在重复购买后查看更改。
购买1次后的变量仍保持停滞状态。
对于这么多的文本我很抱歉,我只是不确定从这些代码段中获取什么。
主要问题是在变量增加或减少后如何修改它的值。
#include <iostream>
#include <string>
using namespace std;
int i;
int x;
int g;
class shotgun
{
private:
int a = 40, b = 15, c = 10, d = 6, j = 10, p = 10, v = 5, n = 2, o = 5, k = 5;
int pointstotal = p -= v;
int baseDamage = a += j;
int accuracy = b += k;
int range = …Run Code Online (Sandbox Code Playgroud) 我想知道我们是否可以宣布下面的内容.我的要求是使用相同的变量但不同的结构.如果可以做到以下情况,你们可以帮助我吗?请建议是否还有其他选择.
switch(x)
{
case 1:
struct_1 *name = NULL;
break;
case 2:
struct_2 *name = NULL;
break;
case 3:
struct_3 *name = NULL;
break;
default:
}
Run Code Online (Sandbox Code Playgroud)
问候
这是错误所关注的开关案例:
switch(event.type)
{
case SDL_Quit:
for (int i=0;i<NUMMENU;i++)
SDL_FreeSurface(menus[i]);
return 1;
case SDL_MOUSEMOTION:
x=event.motion.x;
y=event.motion.y;
for(int i=0;i<NUMMENU;i++)
{
if(x>=position[i].x && x<=position[i].x+position[i].w && y>=position[i].y && y<=position[i].y+position[i].h)
{
if(!selected[i])
{
selected[i]=1;
SDL_FreeSurface(menus[i]);
menus[i]=TTF_RenderText_Solid(font,labels[i],color[1]);
}
}else{
if(selected[i])
{
selected[i]=0;
SDL_FreeSurface(menus[i]);
menus[i]=TTF_RenderText_Solid(font,labels[i],color[0]);
}
}
}
case SDL_MOUSEBUTTONDOWN:
x=event.button.x;
y=event.button.y;
for(int i=0;i<NUMMENU;i++)
if(x>=position[1].x && x<=position[1].x+position[i].w && y>=position[i].y && y<=position[i].y+position[i].h)
{
for(int j=0;j<NUMMENU;j++)
SDL_FreeSurface(menus[j]);
return i;
}
break;
case SDL_KEYDOWN:
if(event.key.keysym.sym==SDLK_ESCAPE)
{
for(int i=0;i<NUMMENU;i++)
SDL_FreeSurface(menus[i]);
return 0;
}
}
Run Code Online (Sandbox Code Playgroud)
我有这个错误,我不知道为什么以及我该怎么做才能解决这个问题.我试图添加休息; 在每个案件的最后但没有结果.
如果您需要更多代码或更多信息,我可以给予精确度.
问候,
我想通过引用返回到交换机内部的变量来返回,例如:
sometype & getbar();
void foo() {
switch ( {statement} ) {
case {statement}:
sometype & handle = getbar();
...
Run Code Online (Sandbox Code Playgroud)
但我收到编译器错误:
'case'标签跳过'identifier'的初始化
'default'标签跳过'identifier'的初始化
它似乎不可能这样做:
void foo() {
sometype & handle;
switch ( {statement} ) {
case {statement}:
handle = getbar();
...
Run Code Online (Sandbox Code Playgroud)
因为引用变量需要初始化.
有没有办法保持switch语句?
我无法理解为什么这适用于if声明而不是switch:
if ((int)typeOfHall == 1) {//LocalHall
NSFetchRequest *request = [NSFetchRequest fetchRequestWithEntityName:@"Game"];
NSPredicate *p = [NSPredicate predicateWithFormat:@"player_id == %@ ",[[NSUserDefaults standardUserDefaults] valueForKey:@"LoggedUserId"]];
request.predicate = p;
}
Run Code Online (Sandbox Code Playgroud)
下面的代码不起作用(编译错误:( Expected expression在NSFetchRequest上)):
switch ((int)typeOfHall) {
case 1:
NSFetchRequest *request = [NSFetchRequest fetchRequestWithEntityName:@"Game"]; //Error Expected expression
NSPredicate *p = [NSPredicate predicateWithFormat:@"player_id == %@ ",[[NSUserDefaults standardUserDefaults] valueForKey:@"LoggedUserId"]];
request.predicate = p;
break;
default:
break;
}
Run Code Online (Sandbox Code Playgroud)
我不知道为什么会这样.我认为switch和if语句是相似的,但在这种情况下它似乎是非常不同的.
你知道为什么会这样吗?
int menuDecision = displayMenu();
//WHILE USER DOESN'T SELECT QUIT
while(menuDecision != 3){
/*
if(menuDecision == 1){
Queue myQueue;
}
else{
Stack myStack;
}
*/
switch(menuDecision){
case 1: Queue myQueue;
break;
case 2: Stack myStack;
break;
}
menuDecision = displayMenu();
}
Run Code Online (Sandbox Code Playgroud)
为什么当我将上面的代码作为 switch 语句运行时会出现错误,但当我使用 if/else-if 时它会起作用?基本上,程序根据菜单中选择的内容来实例化一个对象。一旦创建了对象,就会调用构造函数,构造函数会调用另一个函数,依此类推...基本上,每次在 while 循环中都会创建一个新对象。由于我在代码中没有得到很多反馈,上述实现是否会被视为“糟糕的编程”?
谢谢!
编辑:错误是:
main.cpp:27:4: error: cannot jump from switch statement to this case label
case 2: Stack myStack;
^
main.cpp:25:18: note: jump bypasses variable initialization
case 1: Queue myQueue;
Run Code Online (Sandbox Code Playgroud) c++ ×5
c ×3
objective-c ×3
arrays ×1
c++11 ×1
class ×1
declaration ×1
if-statement ×1
ios ×1
iphone ×1
nsstring ×1
reference ×1
sdl ×1
syntax ×1