标记为循环,继续键不起作用 import java.util.Scanner; 课程详情{ int-num; 字符串名称[]; 双标记[]; 双倍总额[]; 串级[]; void getData(){ 扫描器ob=新扫描器(System.in); System.out.print(“输入学生人数:”); num=ob.nextInt(); 名称=新字符串[num][2]; 分数=新的双精度[num][4]; 对于(int x=0;x 系统输出打印(“名字:”); 名称[x][0]=ob.next(); 系统输出打印(“姓氏:”); name[x][1]=ob.next(); 循环1: 对于(int p=1;p 15)) { System.out.println(“标记应在0到15之间”); 继续循环1; } } 循环2: 对于(INTP=1;P20) { System.out.println(“标记应在0到20之间”); 继续循环2; } } 循环3: 对于(int p=1;p 15) { System.out.println(“标记应在0到15之间”); 继续循环3; } } 第四条: 对于(int p=1;p 50) { System.out.println(“标记应在0到20之间”); 继续循环4; } } System.out.println(); } } 公众假期总数(){ 总计=新的双精度[num]; 对于(int x=0;x 总数[x]=分数[x][0]+分数[x][1]+分数[x][2]+分数[x][3]; } } 公众假期职系(){ 等级=新字符串[num]; 对于(int x=0;x 如果(总计[x]>=80){ 职系[x]=“A”; }否则,如果(总计[x]>=70){ 职系[x]=“B”; }否则,如果(总计[x]>=60){ 职系[x]=“C”; }否则,如果(总计[x]>=50){ 职系[x]=“D”; }否则{ 等级[x]=“F”; } } } 作废打印(){ System.out.println(“\t\t\t结果表\n\n\t第一个名称\t第一个名称\t等级”); 对于(int x=0;x System.out.println(“\t”+名称[x][0]+“\t\t”+名称[x][1]+“\t\t”+等级[x]); } } } 课堂测试{ 公共静态void main(字符串[]args){ 详细信息数据=新的详细信息(); data.getData(); data.total(); 数据。等级(); data.print(); } }
continue关键字的问题是,如果我们输入错误,它将不起作用。我认为您不理解continue关键字的含义。您使用的continue关键字在其当前位置不会起任何作用。例如,此部分:标记为循环,继续键不起作用 import java.util.Scanner; 课程详情{ int-num; 字符串名称[]; 双标记[]; 双倍总额[]; 串级[]; void getData(){ 扫描器ob=新扫描器(System.in); System.out.print(“输入学生人数:”); num=ob.nextInt(); 名称=新字符串[num][2]; 分数=新的双精度[num][4]; 对于(int x=0;x 系统输出打印(“名字:”); 名称[x][0]=ob.next(); 系统输出打印(“姓氏:”); name[x][1]=ob.next(); 循环1: 对于(int p=1;p 15)) { System.out.println(“标记应在0到15之间”); 继续循环1; } } 循环2: 对于(INTP=1;P20) { System.out.println(“标记应在0到20之间”); 继续循环2; } } 循环3: 对于(int p=1;p 15) { System.out.println(“标记应在0到15之间”); 继续循环3; } } 第四条: 对于(int p=1;p 50) { System.out.println(“标记应在0到20之间”); 继续循环4; } } System.out.println(); } } 公众假期总数(){ 总计=新的双精度[num]; 对于(int x=0;x 总数[x]=分数[x][0]+分数[x][1]+分数[x][2]+分数[x][3]; } } 公众假期职系(){ 等级=新字符串[num]; 对于(int x=0;x 如果(总计[x]>=80){ 职系[x]=“A”; }否则,如果(总计[x]>=70){ 职系[x]=“B”; }否则,如果(总计[x]>=60){ 职系[x]=“C”; }否则,如果(总计[x]>=50){ 职系[x]=“D”; }否则{ 等级[x]=“F”; } } } 作废打印(){ System.out.println(“\t\t\t结果表\n\n\t第一个名称\t第一个名称\t等级”); 对于(int x=0;x System.out.println(“\t”+名称[x][0]+“\t\t”+名称[x][1]+“\t\t”+等级[x]); } } } 课堂测试{ 公共静态void main(字符串[]args){ 详细信息数据=新的详细信息(); data.getData(); data.total(); 数据。等级(); data.print(); } },java,Java,continue关键字的问题是,如果我们输入错误,它将不起作用。我认为您不理解continue关键字的含义。您使用的continue关键字在其当前位置不会起任何作用。例如,此部分: import java.util.Scanner; class Details { int num; String NAMES[][]; double MARKS[][]; double TOTAL[]; String GRADES[]; void getData(
import java.util.Scanner;
class Details {
int num;
String NAMES[][];
double MARKS[][];
double TOTAL[];
String GRADES[];
void getData() {
Scanner ob = new Scanner(System. in );
System.out.print("Enter the number of students : ");
num = ob.nextInt();
NAMES = new String[num][2];
MARKS = new double[num][4];
for (int x = 0; x
System.out.print("First Name : ");
NAMES[x][0] = ob.next();
System.out.print("Last Name : ");
NAMES[x][1] = ob.next();
loop1:
for (int p = 1; p <= 1; p++)
{
System.out.print("\tFirst Test Marks : ");
MARKS[x][0] = ob.nextDouble();
if ((MARKS[x][0] < 0) || (MARKS[x][0] > 15))
{
System.out.println("Marks should be within 0 to 15");
continue loop1;
}
}
loop2:
for (int p = 1; p <= 1; p++)
{
System.out.print("\tMid Term Marks : ");
MARKS[x][1] = ob.nextDouble();
if (MARKS[x][1] < 0 || MARKS[x][1] > 20)
{
System.out.println("Marks should be within 0 to 20");
continue loop2;
}
}
loop3:
for (int p = 1; p <= 1; p++)
{
System.out.print("\tLab Test Marks : ");
MARKS[x][2] = ob.nextDouble();
if (MARKS[x][2] < 0 || MARKS[x][2] > 15)
{
System.out.println("Marks should be within 0 to 15");
continue loop3;
}
}
loop4:
for (int p = 1; p <= 1; p++)
{
System.out.print("\tFinal Marks : ");
MARKS[x][3] = ob.nextDouble();
if (MARKS[x][3] < 0 || MARKS[x][3] > 50)
{
System.out.println("Marks should be within 0 to 20");
continue loop4;
}
}
System.out.println();
}
}
public void total() {
TOTAL = new double[num];
for (int x = 0; x
TOTAL[x] = MARKS[x][0] + MARKS[x][1] + MARKS[x][2] + MARKS[x][3];
}
}
public void grades() {
GRADES = new String[num];
for (int x = 0; x
if (TOTAL[x] >= 80) {
GRADES[x] = "A";
} else if (TOTAL[x] >= 70) {
GRADES[x] = "B";
} else if (TOTAL[x] >= 60) {
GRADES[x] = "C";
} else if (TOTAL[x] >= 50) {
GRADES[x] = "D";
} else {
GRADES[x] = "F";
}
}
}
void print() {
System.out.println("\t\t\tRESULT SHEET\n\n\tFirst Name\tLast Name\tGrade");
for (int x = 0; x
System.out.println("\t" + NAMES[x][0] + "\t\t" + NAMES[x][1] + "\t\t" + GRADES[x]);
}
}
}
class test {
public static void main(String[] args) {
Details data = new Details();
data.getData();
data.total();
data.grades();
data.print();
}
}
您的问题是循环长度为1:
loop1:for(int p=1;p我假设您不了解continue
的作用,它用于跳过循环的其余部分,然后重新开始。只有当您有嵌套的循环并且希望继续(或中断)时,才需要标记循环外环
(主题外:我建议创建一个新类,如Student
,包含名字、姓氏和标记,以便代码更易于阅读。)Java规则1:如果使用标签和跳转,代码的结构是错误的。没有例外
因此,为了解决这个问题,你应该把问题改成:“如何正确修改这个代码以消除跳转?”< /P>请适当地格式化你的文章——不仅仅是缩进代码(直到它是代码字体),而且还删除空白行。另外,给出更多的细节——“它不起作用”。信息永远不够。我还强烈建议您开始遵循Java命名约定。这是什么(int x=0;x
应该做什么?您是否错过了它的一半?是的,这是一个提供输入并计算分数的程序,例如,如果我输入错误“100”对于第一个标记,我希望程序将继续循环(因为我放置了带标签的循环)Ohh…真的谢谢你,它正在工作。但是如果我将BufferReader用于扫描仪,它将是一条错误消息未报告异常IOException;必须捕获或声明抛出num=Integer.parseInt(ob1.readLine());
loop1:
for (int p = 1; p <= 1; p++)
{
System.out.print("\tFirst Test Marks : ");
MARKS[x][0] = ob.nextDouble();
if ((MARKS[x][0] < 0) || (MARKS[x][0] > 15))
{
System.out.println("Marks should be within 0 to 15");
continue loop1;
}
}
while(true) {
System.out.print("\tFirst Test Marks : ");
MARKS[x][0] = ob.nextDouble();
if ((MARKS[x][0] < 0) || (MARKS[x][0] > 15)) {
System.out.println("Marks should be within 0 to 15");
} else {
break;
}
}
boolean firstConditionSatisfied = false;
while (!firstConditionSatisfied) {
System.out.print("\tFirst Test Marks : ");
MARKS[x][0] = ob.nextDouble();
if ((MARKS[x][0] < 0) || (MARKS[x][0] > 15)) {
System.out.println("Marks should be within 0 to 15");
} else {
firstConditionSatisfied = true;
}
}