Компилятор, показывающий недостижимое утверждение
Я построил этот код, используя строку, но, наконец, все мои усилия компилятор показывает, что оператор недостижим. Код:-
import java.util.*;
public class Routine {
String Period1,Period2,Period3,Period4,Period5,Period6,Period7,Period8,Period_1,Period_2,Period_3,Period_4,Period_5,Period_6,Period_7,Period_8,Period__1,Period__2,Period__3,Period__4,Period__5,Period__6,Period__7,Period__8,Period___1,Period___2,Period___3,Period___4,Period___5,Period___6,Period___7,Period___8,Period____1,Period____2,Period____3,Period____4,Period____5,Period____6,Period____7,Period____8,Period_____1,Period_____2,Period_____3,Period_____4,Period_____5,Period_____6;
public static String Monday(String day){
String Period1="Math (Soumik sir)";
return Period1;
String Period2="SUPW";
return Period2;
String Period3="Geography";
return Period3;
String Period4="History";
return Period4;
String Period5="Recees";
return Period5;
String Period6="English-II (Prose)";
return Period6;
String Period7="Chemistry";
return Period7;
String Period8="Bengali";
return Period8;
}
public static String Tuesday(String day) {
String Period_1="Physics";
return Period_1;
String Period_2="Biology";
return Period_2;
String Period_3="Computer";
return Period_3;
String Period_4="English (Poetry)";
return Period_4;
String Period_5="Recees";
return Period_5;
String Period_6="Math (Sreemoyee mam)";
return Period_6;
String Period_7="Bengali";
return Period_7;
String Period_8="Math (soumik sir)";
return Period_8;
}
public static String Wednesday(String day) {
String Period__1="Physics";
return Period__1;
String Period__2="Bengali";
return Period__2;
String Period__3="Computer";
return Period__3;
String Period__4="Biology";
return Period__4;
String Period__5="Recees";
return Period__5;
String Period__6="Math (Sremoyee mam)";
return Period__6;
String Period__7="English (Grammar)";
return Period__7;
String Period__8="Games";
return Period__8;
}
public static String Thursday(String day)
{
String Period___1="Chemistry";
return Period___1;
String Period___2="Bengali";
return Period___2;
String Period___3="Math (Soumik sir)";
return Period___3;
String Period___4="English (Merchant of Venice)";
return Period___4;
String Period___5="Recees";
return Period___5;
String Period___6="Biology";
return Period___6;
String Period___7="Geography";
return Period___7;
String Period___8="History";
return Period___8;
}
public static String Friday(String day)
{
String Period____1="Physics";
return Period____1;
String Period____2="Chemistry";
return Period____2;
String Period____3="Geography";
return Period____3;
String Period____4="History";
return Period____4;
String Period____5="Recees";
return Period____5;
String Period____6="Math (Soumik sir)";
return Period____6;
String Period____7="English";
return Period____7;
String Period____8="Bengali";
return Period____8;
}
public static String Saturday(String day)
{
String Period_____1="Physics";
return Period_____1;
String Period_____2="Chemistry";
return Period_____2;
String Period_____3="Biology";
return Period_____3;
String Period_____4="Recees";
return Period_____4;
String Period_____5="English";
return Period_____5;
String Period_____6="Computer";
return Period_____6;
}
public static void main()
{
Scanner sc=new Scanner(System.in);
System.out.println("Enter the name of the day");
Routine ob=new Routine();
String day=sc.next();
switch(day){
case "Monday":System.out.println(ob.Monday(day));
break;
case "Tuesday":System.out.println(ob.Tuesday(day));
break;
case "Wednesday":System.out.println(ob.Wednesday(day));
break;
case "Thursday":System.out.println(ob.Thursday(day));
break;
case "Friday":System.out.println(ob.Friday(day));
break;
case "Saturday":System.out.println(ob.Saturday(day));
break;
}
System.out.println("****************");
}
}
2 ответа
Вот один из ваших методов:
public static String Monday(String day){
String Period1="Math (Soumik sir)";
return Period1;
String Period2="SUPW";
return Period2;
String Period3="Geography";
return Period3;
String Period4="History";
return Period4;
String Period5="Recees";
return Period5;
String Period6="English-II (Prose)";
return Period6;
String Period7="Chemistry";
return Period7;
String Period8="Bengali";
return Period8;
}
из того, что я могу сказать, многие из них следуют той же схеме. Когда вызывается понедельник, передается строковый день, который он не использует. Метод сначала устанавливает значение Period1, а затем использует return
, return
Ключевое слово сообщает методу, что он завершен, и отправляет значение Period1 вызывающей стороне. Скорее всего, вы хотели System.out.println(Period1);
Попробуй это:
public class Routine {
String Period1,Period2,Period3,Period4,Period5,Period6,Period7,Period8;
public static void Monday() {
String Period1="Math (Soumik sir)";
System.out.pringln(Period1);
String Period2="SUPW";
System.out.pringln(Period2);
String Period3="Geography";
System.out.pringln(Period3);
String Period4="History";
System.out.pringln(Period4);
String Period5="Recees";
System.out.pringln(Period5);
String Period6="English-II (Prose)";
System.out.pringln(Period6);
String Period7="Chemistry";
System.out.pringln(Period7);
String Period8="Bengali";
System.out.pringln(Period8);
}
public static void main()
{
Scanner sc=new Scanner(System.in);
System.out.println("Enter the name of the day");
String day=sc.next();
switch(day){
case "Monday": Monday();
break;
case "Tuesday": Tuesday();
break;
case "Wednesday": Wednesday();
break;
case "Thursday": Thursday());
break;
case "Friday": Friday();
break;
case "Saturday": Saturday();
break;
}
System.out.println("****************");
}
}
Как всегда, есть тысяча способов сделать это, и это только один. Обратите внимание, что я не "передал" значение в Monday()
метод (это будет выглядеть Monday(day)
, как вы сделали в своем примере. Также метод Monday()
определяется как public static void
, void
Ключевое слово означает, что оно не будет "возвращать" значение (оно не потребует return
заявление, о котором я бы посоветовал вам прочитать).
На практике вы можете улучшить приведенный выше код, переместив switch
оператор в метод, чтобы лучше инкапсулировать функциональность вашего кода. Для этого потребуется: провести день в новом методе, выполнить рефакторинг так, чтобы ваш оператор switch был в новом методе, и вызвать этот метод из вашего main
,
Вернуть только одну вещь из не пустого метода, и если вы хотите вернуть несколько вещей одного типа (например, то, что вы здесь делаете), просто используйте массив (как я).
import java.util.*;
public class Routine {
static String Period1,Period2,Period3,Period4,Period5,Period6,Period7,Period8;
public static String [] myMethod(String day){
switch(day){
case "Monday":
Period1="Math (Soumik sir)";
Period2="SUPW";
Period3="Geography";
Period4="History";
Period5="Recees";
Period6="English-II (Prose)";
Period7="Chemistry";
Period8="Bengali";
break;
case "Tuesday":
Period1="Physics";
Period2="Biology";
Period3="Computer";
Period4="English (Poetry)";
Period5="Recees";
Period6="Math (Sreemoyee mam)";
Period7="Bengali";
Period8="Math (soumik sir)";
break;
case "Wednesday":
Period1="Physics";
Period2="Bengali";
Period3="Computer";
Period4="Biology";
Period5="Recees";
Period6="Math (Sremoyee mam)";
Period7="English (Grammar)";
Period8="Games";
break;
case "Thursday":
Period1="Chemistry";
Period2="Bengali";
Period3="Math (Soumik sir)";
Period4="English (Merchant of Venice)";
Period5="Recees";
Period6="Biology";
Period7="Geography";
Period8="History";
break;
case "Friday":
Period1="Physics";
Period2="Chemistry";
Period3="Geography";
Period4="History";
Period5="Recees";
Period6="Math (Soumik sir)";
Period7="English";
Period8="Bengali";
break;
case "Saturday":
Period1="Physics";
Period2="Chemistry";
Period3="Biology";
Period4="Recees";
Period5="English";
Period6="Computer";
Period7="";
Period8="";
break;
}
String [] result= {Period1,Period2,Period3,Period4,Period5,Period6,Period7,Period8};
return result;
}
public static void main()
{
Scanner sc=new Scanner(System.in);
System.out.println("Enter the name of the day");
Routine ob=new Routine();
String day=sc.next();
String res [] = ob.myMethod(day);
for(int i = 0 ; i<res.length ; i++){
System.out.println(res[i]);
}
System.out.println("****************");
}
}