Elágazás probléma Java-ban?!
A problémám az lenne,hogy adott egy feltétel,ha a számom páratlan akkor ki írja h "Bad",ha nem páratlan ki írja hogy "Not Bad".Viszont,2 és 5 között beleértve a kettőt és az 5-öt is ki írja hogy "Not bad".A problémám az,hogy ha meg adom neki hogy 3 akkor arra a "Bad" szót kellene ki írnia,ám az utolsó elágazásom miatt a "Not bad" szó jön ki. 6 és 20 között "Bad" kell,ha a számom 20-nál nagyobb "Not bad" kell. Mutatom a kódom.
import java.io.*;
import java.util.*;
import java.text.*;
import java.math.*;
import java.util.regex.*;
public class harmadik {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int n=sc.nextInt();
String ans="";
if(n%2==1){
ans = "Bad";
}
else if (n >= 2 && n <= 5 )
{
ans = "Not Bad";
}
else if (n >= 6 || n <= 20)
{
ans = "Bad";
}
if (n > 20)
{
ans = "Not Bad";
}
System.out.println(ans);
}
}
A feladat a következő:
Bekérünk egy egész típusú számot nevezzünk el "k"-nak.
- Ha "k" páratlan akkor ki írja a program,hogy "Bad".
- Ha "k" páros,valamint 2 és 5 közé esik(beleértve a határokat is) akkor ki írja,hogy "Not Bad".
- Ha "k" páros és 6,illetve 20 közé esik(beleértve a határokat is ) ki írja hogy "Bad".
- Ha "k" nagyobb,mint 20 ki írja hogy "Not bad"(Minden esetben,tehát ha páros,ha páratlan).
Hol adnak fel ilyen primitív feladatot?
Egyébként még mindig a harmadik feltételed a fő ludas, de már jobban nem tudok rámutatni, hogy miért...
Ezt komolyan gondolod?
Nem baj, hogy ugyanazt a változód írod felül újra?
Task
Given an integer,k , perform the following conditional actions:
If k is odd, print Weird
If k is even and in the inclusive range of 2 to 5, print Not Weird
If k is even and in the inclusive range of 6 to 20, print Weird
If k is even and greater than 20 , print Not Weird
És itt az induló kód,amihez csak hozzárakhatok,ám a k-val kell dolgoznom.
import java.io.*;
import java.util.*;
import java.text.*;
import java.math.*;
import java.util.regex.*;
public class Solution {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int n=sc.nextInt();
String ans="";
if(k%2==1){
ans = "Weird";
}
else{
//Complete the code
}
System.out.println(ans);
}
}
if(n%2==1){
ans = "Bad";
}
else if (n >= 2 && n <= 5 )
{
ans = "Not Bad";
}
Innen szedd ki az else-t, mert csak akkor fut rá, ha a szám páros.
else if (n >= 6 || n <= 20)
{
ans = "Bad";
}
Ez szintén nem jó. Bár a feladatból adódóan pont nem ad téves eredményt, de attól még nem helyes megoldás.
VAGY helyett ÉS feltétel kell. Az else nem kell.
import java.io.*;
import java.util.*;
import java.text.*;
import java.math.*;
import java.util.regex.*;
public class harmadik {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int n=sc.nextInt();
String ans="";
if(n%2==1){
ans = "Weird";
}
else
{
ans = "Not Weird";
}
if( n%2==0 && n >= 2 && n <= 5)
{
ans = "Not Weird";
}
else if(n%2 == 1 && n >= 6 && n <= 20)
{
ans = "Not Weird";
}
else
{
ans = "Weird";
}
if (n > 20)
{
ans = "Not Weird";
}
System.out.println(ans);
}
}
Ez így működik,ám valamiért nem kapom meg rá a maximális pontot.
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!