Java'da şifre oluşturma kodu çalışmıyor

kayra_1907

Hectopat
Katılım
27 Temmuz 2019
Mesajlar
21
Java:
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner giris = new Scanner(System.in);
        System.out.println("Şifre: ");
        String sifre = giris.nextLine();
        if (sifreBelirleme(sifre))
            System.out.println("Şifreniz onaylandı.");
        else
            System.out.println("Tekrar şifre oluşturunuz.");

    }

    static boolean sifreBelirleme(String sifre) {
        int count = 0;
        String ozelKarakterler = "!'^$%&/()=?><£#{[]}|*é";
        if (sifre.length() < 8) {
            System.out.println("Şifrede en az 8 karakter olmalı.");
            return false;

        }


        for (int i = 0; i < sifre.length(); i++) {
            for (int j = 0; j < ozelKarakterler.length(); j++) {
                if (sifre.charAt(i) == ozelKarakterler.charAt(j)) {
                    System.out.println("Şifre özel karakter içermemelidır.");
                    return false;

                }


            }
        }

        for (int i = 0; i < sifre.length(); i++) {
            if (Character.isDigit(sifre.charAt(i))) {
                count++;
            }
        }

        if (count < 2) {
            System.out.println("Şifrede en az 2 rakam olmalı.");


        }
        return false;
    }
}

Burada en sondaki return falsedan dolayı şifre doğru girilse bile tekrar şifre oluşturunuz diyor. Nasıl düzeltebilirim?

Java:
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner giris = new Scanner(System.in);
        System.out.println("Şifre: ");
        String sifre = giris.nextLine();
        if (sifreBelirleme(sifre))
            System.out.println("Şifreniz onaylandı.");
        else
            System.out.println("Tekrar şifre oluşturunuz.");

    }

    static boolean sifreBelirleme(String sifre) {
        int count = 0;
        String ozelKarakterler = "!'^$%&/()=?><£#{[]}|*é";
        if (sifre.length() < 8) {
            System.out.println("Şifrede en az 8 karakter olmalı.");
            return false;

        }


        for (int i = 0; i < sifre.length(); i++) {
            for (int j = 0; j < ozelKarakterler.length(); j++) {
                if (sifre.charAt(i) == ozelKarakterler.charAt(j)) {
                    System.out.println("Şifre özel karakter içermemelidır.");
                    return false;

                }


            }
        }

        for (int i = 0; i < sifre.length(); i++) {
            if (Character.isDigit(sifre.charAt(i))) {
                count++;
            }
        }

        if (count < 2) {
            System.out.println("Şifrede en az 2 rakam olmalı.");


        }
        return false;
    }
}

Burada en sondaki return falsedan dolayı şifre doğru girilse bile tekrar şifre oluşturunuz diyor. Nasıl düzeltebilirim?
Hatamı anladım konu kapanabilir.
 
Son düzenleme:

Geri
Yukarı