这是代码。
do {
System.out.println("Enter Product Code: ");
medicine = machine1.nextInt();
if (medicine==1) {
machine1.buy1();
machine1.addproduct();
}
if (medicine==2); {
machine1.buy2();
machine1.addproduct();
}
} while((String answer=='y') || (String answer=='Y'));
它给出了这个错误:
enter code drugstore1.java:96: error: ')' expected }while((String answer=='y'))||((String answer=='Y')); ^ drugstore1.java:96: error: ';' expected }while((String answer=='y'))||((String answer=='Y')); ^ drugstore1.java:96: error: ';' expected }while((String answer=='y'))||((String answer=='Y')); ^
修复其他错误后,它会发生错误。我想我正确使用它..但是出了什么问题?
答案 0 :(得分:5)
我建议你写一下
ssh key
intead of
while(answer.equalsIgnoreCase("y"));
您无法在逻辑条件中定义新变量。
while((String answer=='y'))||((String answer=='Y'));
答案 1 :(得分:4)
尝试在所有条件下使用double quote
和equalsignorecase
方法,条件如下:
while(answer.equalsignorecase("y"));
在想要使用创建变量插入字符串“y”时尝试使用nextLine()
:
String answer= machine1.nextLine();
像这样:
System.out.println("Enter Product Code: ");
medicine = machine1.nextInt();
System.out.println("Enter y if you want leave: ");
String answer= machine1.nextLine();
答案 2 :(得分:2)
以下是一些指导原则:
不要在while()语句中声明对象。您的意思是NSArray *ages = @[@"3", @"10", @"18", @"20"];
BOOL(^parameter)(NSInteger integer) = ^BOOL(NSInteger integer) {
if (integer >= 18) {
return YES;
}
return NO;
};
NSInteger(^block)(BOOL(^parameter)(), NSArray *array) = ^NSInteger(BOOL(^parameter)(), NSArray *array) {
for (NSUInteger i = 0; i < array.count; i++) {
NSInteger arrayInteger = [array[i] intValue];
if (parameter(arrayInteger) == YES) {
return i;
}
}
return -1;
};
NSInteger result = block(parameter, ages);
吗?
不要使用==运算符比较字符串。字符串与while(answer=="y")
进行比较。 .equals()
仅检查两个操作数是否位于相同的物理内存位置。
答案 3 :(得分:2)
您正在尝试在您的条件中声明变量:
String answer=='y'
变量声明如何用作比较?
answer
应该来自哪里?它并不存在于您的代码中的任何位置,因此它并不清楚您在那里尝试完成的任务。
但是一旦你做在代码中有一个answer
变量,可能包含一些'y'
或'Y'
值,你就可以这样比较:< / p>
while(answer.equalsIgnoreCase("y"))
此外,你有一个错误:
if(medicine==2);
该分号将以静默方式终止if
块,并且无论条件如何,以下代码块都将始终执行。删除那个分号。
答案 4 :(得分:2)
应该是
while("y".equalsIgnoreCase(answer)){// will avoid null pointer exception if answer is null
if(medicine==1)
{
machine1.buy1();
machine1.addproduct();
}
else if(medicine==2) // better for performance as both if conditions are mutually exclusive
{
machine1.buy2();
machine1.addproduct();
}
}